2010-07-09 29 views
20

Leo en todas partes (y veo en la práctica) que los nombres de usuario no deben ser cambiables. Cuando pregunto por qué, 'seguridad' se da como una razón.¿Por qué los nombres de usuario no se pueden cambiar?

He estado buscando una respuesta definitiva sobre por qué cambiar el nombre de usuario es inseguro, pero parece que no puedo encontrar la respuesta.

¿Alguna de las personas experimentadas en seguridad aquí puede responder esta pregunta?

Nota: si no sabes la respuesta, por favor no especules. He pensado en una serie de razones, pero no sé la respuesta real, de ahí la pregunta.

ACTUALIZACIÓN:
1: Por ID de usuario que pretende hacer referencia a algún tipo de identificador único, ya sea un ID de registro de base de datos o alguna otra identificación única. Me han dicho varias veces que cambiar el nombre de usuario es malo para la seguridad, incluso si el nombre de usuario no es el identificador primario/único para el sistema en sí.

2: Autorizo ​​a los usuarios a cambiar su "nombre público". Este es el nombre que se usa para identificar al usuario para los otros usuarios (no privilegiados). por ejemplo:

userId: 1234
username: john02
public name: John Jameson
email: [email protected]

3: Como ha señalado Jason y The Rook, consistencia parece ser la única buena razón. Tengo la sensación de que esta "mejor práctica" podría ser un residuo de algún lugar en el pasado cuando los nombres de usuario se usaban realmente dentro del sistema para identificar a los usuarios de manera única.

+2

Nunca escuché que la seguridad es el problema. Sin embargo, sé que es molesto para SO cuando los comentarios hacen referencia a @Dave, y no aparece ninguna lista cuyo nombre de usuario comienza por "Dave" –

+3

@BlueRaja: siempre asumí que eso sucede porque se eliminó el comentario al que respondieron, pero el la respuesta no fue – David

+0

No me importaría ver algunos ejemplos del "lugar" que ha leído que dice que no permitir los cambios de nombre de usuario/usuario es un problema de seguridad. (A menos que ID sea la ID utilizada en la base de datos, pero no creo que sea eso lo que quiere decir aquí ...) – Joe

Respuesta

6

Hay una serie de razones, desde el punto de vista de la seguridad, por las que es posible que no desee permitir que los usuarios cambien sus nombres. Sin embargo, como "NUNCA hago esto", no necesariamente estoy de acuerdo. Pero, permitir cambios de nombre crea bastante trabajo extra. Si va a permitir que los usuarios cambien sus identidades, debe tener mucho cuidado debido a los siguientes motivos.

  1. Mantenimiento de una identidad de usuario coherente. Digamos que ejecuta un tablero de mensajes y Troll_1 está en la lista de bloqueo de todos. Si Troll_1 puede cambiar su nombre, entonces todos esos filtros de usuario no son buenos y usted tiene algunos usuarios insatisfechos.
  2. Junto con la respuesta número 1, también debe mantener la coherencia en todos los sistemas subyacentes. Si los usuarios pueden cambiar nombres, debe asegurarse de verificar que, o bien, actualice todos los sistemas que ese usuario esté usando para que no pierda (o gane) permisos en áreas que están (o no) autorizados . Además, si un usuario cambia su nombre y un nuevo usuario desea usar ese nombre, puede, inadvertidamente, permitir que ese nuevo usuario acceda a la información/datos/del usuario anterior si no ha realizado la diligencia debida al actualizar sus sistemas. .
  3. Dependiendo del tipo de sistema que tenga, permitir que alguien cambie su nombre de usuario puede hacer que su sistema sea propenso al abuso desde el punto de vista del fraude. Podría hacer que alguien cambie su nombre pretendiendo ser dos personas diferentes en un intento de estafar a alguien. Una víctima inconsciente puede caer fácilmente en ello. (Suena estúpido, lo sé, pero he visto gente viene con basura más loco.)

De todos modos, como dije - No creo que sea necesariamente una mala cosa es permitir a los usuarios cambiar sus nombres. Sin embargo, crea mucho más trabajo para usted, el desarrollador. Los nombres de usuario ahora no pueden ser ID únicos en una base de datos y los nombres de usuario ahora no se relacionan necesariamente con alguien (porque pueden cambiarse más adelante), por lo que debe tener un sistema diferente para expresar "singularidad".

+1

+1 por consistencia, la única razón para no permitir cambiar el nombre de usuario de mi punto de vista –

+10

En el punto 1: no será un problema si bloquea la identificación real utilizada por el sistema en su lugar. –

+0

Parece que podría ejecutar scripts para encargarse de estos. –

4

No estoy de acuerdo con la premisa. Hay muchos sitios de renombre que te permiten cambiar tu nombre de usuario; eBay es uno de los primeros que viene a la mente.

Editar:

Ahora que pienso en esto, y leer la respuesta de Rook, me acordé de un lugar trabajé en donde no se podía crear una cuenta con un nombre de usuario que ya existía, pero siempre se puede cambiar (más tarde, después del registro) a un nombre de usuario que ya existía. Lamentablemente, en dicho lugar, los permisos se basaban en el nombre de usuario ... se puede ver dónde reside el problema de seguridad.

+1

Vea mi segundo punto en mi publicación (en lo que respecta a su Edición). Eso es exactamente lo que puede suceder. Básicamente, al permitir cambios de nombre, puede crear mucho trabajo adicional para el desarrollador. – JasCav

+0

@Jason: Siempre es un trabajo extra agregar una nueva función. @Esteban: Parece un agujero de seguridad bastante grande para verificar la existencia de un nombre de usuario cuando * se crea * un nombre de usuario pero no cuando * se cambia *.La idea de que "quizás olvidemos verificar algo" no parece una buena razón para crear una política ... –

7

Si no permite que las personas cambien sus nombres de usuario, algunas personas simplemente crearán cuentas nuevas. No veo ningún riesgo de seguridad en esto, y muchas aplicaciones, incluido SO, le permiten cambiar su nombre. Si cambia el nombre, mantenga el ID de usuario (clave principal) igual para que todos los datos se conecten correctamente.

El único peligro que veo es si puede cambiar su nombre a una cuenta que ya existe como 'admin'.

0

Yo diría que no poder cambiar un nombre es MALO por seguridad. Especialmente cuando el inicio de sesión es una dirección de correo electrónico. Steam es un ejemplo perfecto de esto ... las personas se inscribieron hace 5 años cuando estaban en la escuela secundaria, con sus correos electrónicos [email protected] Ahora tienen que seguir recordando ese correo electrónico, recordando las contraseñas de Steam y de correo electrónico, asegurándose de que nadie haya tenido acceso al correo electrónico, etc., incluso cuando no hayan usado la cuenta de correo electrónico en años. Básicamente, reduce la posibilidad de que el correo electrónico de inicio de sesión se compruebe realmente, lo que hace que los correos electrónicos de "contraseña olvidada" y otros sean menos seguros.

Y no puede simplemente crear una nueva cuenta si los elementos de valor real como los juegos están vinculados a esa cuenta. Estás atrapado con tu nombre de por vida.

+0

Acepto que es una mala idea para las direcciones de correo electrónico de los usuarios como 'nombre de inicio de sesión'. Las direcciones de correo electrónico cambian, el sistema debe acomodarse a esos cambios. – Jacco

+0

Muy buen punto, pero Steam es un mal ejemplo. Me conecto a Steam con mi nombre de usuario, no mi dirección de correo electrónico. – robinjam

2

Puede o no ser malo para la seguridad, pero si los ID de usuario se basan en nombres de usuario, puede resultar embarazoso. Piense, por ejemplo, en una usuaria, Jane Smith (casada con el señor Smith) que se divorció y quiere volver a su nombre anterior al matrimonio. Cada vez que inicia sesión en su sistema, le recuerda lo que fue.

Ahora puede crear una nueva cuenta y mover cualquier configuración a esa nueva cuenta. O bien, podría usar otra cosa que no sea el nombre de usuario para poder cambiar una ID de usuario/inicio de sesión, pero eso se asigna a otra ID que no se modifica, como un número de secuencia o algo similar.

Debe tener una ID inalterada, como mínimo, para que se complete cualquier auditoría realizada por el sistema de orientación. Crear un nuevo usuario (proporcionando así una nueva identificación de usuario) en un cambio de nombre rompe la cadena de auditoría y requiere que una persona recuerde que "Oh, sí, se llamó Jane Smith el año pasado" ...

+1

+1 Buen argumento para permitir cambios de nombre de usuario. – Jacco

2

Manteniendo un nombre de usuario coherente es completamente irrelevante si haces dos cosas: tener un ID de usuario diferente e inalterable, y normalizar correctamente tu base de datos. El primero es importante porque significa que no está usando el nombre de usuario como clave de base de datos (o para cualquier otro permiso o algo por el estilo, evitando así muchos de los problemas que han planteado otros carteles).El segundo es importante porque evita que aparezcan los ataques tipo fraude, como Jason, porque cuando cambias tu nombre de usuario, cambiará en todas las publicaciones antiguas y en cualquier otro lugar en el que se muestre.

No veo ninguna razón por la cual sea importante si tiene un nombre para mostrar por separado o no, el nombre de usuario aún puede ser cambiable sin ningún problema de seguridad. Es probable que desee mantener un registro de los nombres de usuario pasados ​​para que si alguien le envía un correo electrónico sobre una cuenta perdida/pirateada, puede encontrarlo, como se menciona en jumpdart. Pero seguramente ya está rastreando las direcciones de correo electrónico anteriores asociadas con la cuenta por el mismo motivo, ¿no? :) Yo digo que los haga cambiable. El esfuerzo extra es insignificante, y hay muchos usos legítimos.

+0

Definitivamente tienen una identificación única e inmutable. Todo lo demás puede ser modificado por el usuario (con los controles apropiados para asegurarse de que sea una solicitud legítima por supuesto). – ChrisF

2

Surge una dificultad si los usuarios pueden cambiar a nombres que se han usado en el pasado. Si los usuarios siempre son identificados usando algún identificador que nunca cambiará ni se reutilizará, es posible usar de manera segura y sensata un nombre de usuario desde el punto de vista de UI si todas las transacciones registran tanto la identidad del usuario que realiza la transacción como el nombre de usuario en ese momento la transacción fue realizada. En ese caso, algo así como una publicación en el tablero de mensajes podría etiquetarse como "Por: SuperCat (como Mighty Kitty)". Supercat sería el nombre de usuario actual del póster, y Mighty Kitty sería el nombre de usuario que tenía el póster cuando se escribió la publicación.

+0

+1: buena sugerencia. – Jacco

0

Muchas respuestas. Probablemente ya lo tienes resuelto. Aquí están mis 2 centavos:

No permita que las personas cambien sus nombres. No por seguridad ni nada, sino porque puede reflejar mal en su sitio. La gente conoce a un usuario como xxx y cambian a yyy, luego su reputación también puede desaparecer. Los usuarios abusivos solo plagarán su sistema con cambios constantes.

URL de indexación: Si está indexado como tal - www.somewhere.com/user/awesomeGuy continuación awesomeGuy cambia de nombre a stupidGuy entonces se pierde resultados indizados y se obtiene el error 404 o algo así, cuando las arañas de Google rastrean la web. Se beneficiará más teniendo URL de nombre de usuario que permitiendo que las personas cambien sus nombres de usuario. En la actualidad, la posibilidad de cambiar su nombre de usuario no es muy importante en la lista de "imprescindibles" cuando las personas se registran en un sitio.

Hora: Su tiempo es más importante que programar funciones inútiles como esta.

Solo mi opinión. Sin embargo, no hay riesgos de seguridad, a menos que no limpie su entrada.

+0

Las personas son conocidas por su nombre público, por lo que los cambios de nombre de usuario no afectan esto. Los cambios en la URL son una cosa completamente diferente, y no son parte de la pregunta (pero http: 301 resolvería el problema muy bien). – Jacco

+1

Una persona que cambia su nombre de usuario no debe afectar su URL de perfil. En SO, la página de perfil de usuario hace referencia a la identificación del usuario, y el nombre de usuario es puramente canónico. Por ejemplo, http://stackoverflow.com/users/388103/kai, http://stackoverflow.com/users/388103/foobar, http://stackoverflow.com/users/388103/ todos asignan a la misma página. –

Cuestiones relacionadas