Copiando la dirección de correo electrónico a una página de contraseña olvidada

43

Soy responsable de un sitio web y estoy cuestionando la lógica de algunas políticas "estándar de la industria" que me pidieron que cumpliera.

Cuando un usuario inicia sesión en el sitio web, recibe un mensaje para informarle que los detalles de inicio de sesión son incorrectos, pero no especificamos si el nombre de usuario o la contraseña son incorrectos.

Si el usuario se da cuenta de que ha olvidado su contraseña (debería haber usado un administrador de contraseñas), puede hacer clic en el enlace de contraseña olvidada e ingresar su dirección de correo electrónico y presionar intro. Luego se les muestra un mensaje que les dice que si tienen una cuenta, la cuenta se ha bloqueado y que se ha enviado un correo electrónico de restablecimiento de contraseña a su cuenta de correo electrónico.

Hasta ahora, no hay ninguna filtración de información sobre qué credencial es incorrecta o si existe una cuenta para el correo electrónico proporcionado.

Para mejorar la experiencia del usuario, sugerí que si hace clic en el enlace de contraseña olvidada, si está disponible en el campo de inicio de sesión, deberíamos copiar la dirección de correo electrónico en el campo de dirección de correo electrónico en la página de contraseña olvidada.

Sin embargo, me han dicho que esto va en contra de los 'Estándares de la industria', ¡aunque nadie me puede mostrar nada para respaldar esto!

Comprendo que simplemente agregarlo a la URL sería malo, ya que permitiría a las personas desplazarse por las direcciones de correo electrónico y bloquear las cuentas de las personas, causando inconvenientes a los usuarios.

¿Qué vulnerabilidad de seguridad, si alguna, hace esta mala práctica?

Editar:

Una actualización para cualquier nuevo lector.

Aquí ha habido algunas respuestas geniales y estoy agradecido por todos los comentarios.

El proceso tuvo una falla, en el bloqueo en la contraseña olvidada y esto será enmendado. El mensaje cuando una cuenta bloqueada sigue mostrando el mensaje email address or password incorrect , por lo que el usuario no sabría que la dirección de correo electrónico era válida.

    
pregunta Karl Gjertsen 05.08.2016 - 11:07
fuente

6 respuestas

57

Ninguna como tal
El cambio que está proponiendo parece ser solo un cambio en la experiencia del usuario. Sí, alguien puede decir que será fácil de usar para los usuarios malintencionados el bloquear a los usuarios normales del sistema, pero eso no está en ti.
El mayor problema para usted es su política de bloquear la cuenta del usuario cuando hacen clic en Olvidé mi contraseña. Esto hace que sea muy fácil para un usuario malintencionado bloquear su cuenta. Solo tienen que ir a la contraseña olvidada - > Ingrese la ID de correo electrónico válida - > Pulsa el botón de reinicio.

    
respondido por el Limit 05.08.2016 - 11:37
fuente
15

No hay ninguna preocupación importante aquí, aunque me aseguraría de que el almacenamiento en caché esté deshabilitado para que cualquier persona que visite la página en el mismo navegador no tenga acceso a la dirección de correo electrónico si carga la página Contraseña olvidada.

Recomendaciones de encabezado desde aquí . Tenga en cuenta que si bien pragma es, por especificación, un encabezado de solicitud en HTTP 1.0, muchos navegadores y servidores proxy aún lo interpretarán en una respuesta.

Cache-Control: private, no-cache, no-store, max-age=0, no-transform
Pragma: no-cache
Expires: 0

También debe mitigar las fugas y el almacenamiento del remitente en el historial del navegador, POSTANDO la redirección a la página Contraseña olvidada.

Otros comentarios sobre su enfoque general

  

Luego se les muestra un mensaje que les dice que si tienen un   cuenta, la cuenta se ha bloqueado y un correo electrónico de restablecimiento de contraseña   ha sido enviado a su cuenta de correo electrónico.

El bloqueo de la cuenta podría hacerse como un ataque de denegación de servicio contra un usuario en particular. Si sé que [email protected] tiene una cuenta en su sistema y quiero denegarle el servicio, podría solicitar repetidamente que se restablezca la contraseña de esa cuenta para poder seguir bloqueando.

  

Cuando un usuario inicia sesión en el sitio web, recibe un mensaje para informarle la   los detalles de inicio de sesión son incorrectos, pero no especificamos si es el   nombre de usuario o la contraseña que es incorrecta.

¿Qué se muestra si la cuenta está bloqueada?

Si dice que su nombre de usuario y contraseña son incorrectos, el usuario puede estar confundido si de hecho está bloqueado (según mi explicación de DoS más arriba).

Sin embargo, si dice que su cuenta está bloqueada, ¿está haciendo esto también por cuentas inexistentes? Lo pregunto porque, de no ser así, como atacante podría intentar restablecer la contraseña y luego intentar iniciar sesión como el mismo usuario. Si luego recibo un mensaje que dice que la cuenta está bloqueada, he descubierto una cuenta válida (esto se clasifica como Vulnerabilidad del usuario )

Por lo tanto, es posible que también desee hacer que su lógica parezca bloquear cuentas inexistentes si se intentó restablecer la contraseña. Es posible que desee aparecer para desbloquearlos después de un período de tiempo aleatorio, de lo contrario, un atacante podría inferir que una cuenta bloqueada permanentemente es una cuenta que no existe debido a que nunca se ha desbloqueado.

    
respondido por el SilverlightFox 05.08.2016 - 13:15
fuente
11

No puedo ver ningún "estándar de la industria" que haya roto al copiar los nombres de usuario en la página de contraseña olvidada.

Por lo que veo, siempre que esté mostrando el mismo mensaje para un nombre de usuario válido (dirección de correo electrónico), cuando se envíe al servicio de contraseña olvidada, debería estar bien.

I.E. Independientemente de una dirección de correo electrónico válida o no válida, al usuario se le mostrará un mensaje como: "¡Gracias! Si se ha creado una cuenta con la dirección de correo electrónico proporcionada, se le enviará un correo electrónico a esa dirección. dirección, con instrucciones para restablecer su contraseña ".

La única forma en que puedo ver un problema sería si el campo de nombre de usuario está habilitado con Auto Complete. Obviamente, si el usuario está en una computadora compartida, corre el riesgo de que su nombre de usuario (dirección de correo electrónico) sea revelado a un atacante, pero todo depende del tipo de sitio web que se discute aquí.

    
respondido por el James 05.08.2016 - 13:02
fuente
4

Dejando de lado la falla potencial de seguridad, esto se basa en la suposición de que el cliente tenía razón al pensar que tenía la dirección de correo electrónico correcta y que solo la contraseña era la incorrecta.

Un cliente que escribe incorrectamente su dirección de correo electrónico y no se da cuenta inmediatamente de este hecho tendrá que restablecer la contraseña, la dirección de correo electrónico se rellenará automáticamente y harán clic en "restablecer contraseña" sin verificar la dirección de correo electrónico que se completó automáticamente. Es posible que no se note un error tipográfico en el campo de correo electrónico, y es probable que el usuario asuma que la contraseña es lo que está mal si la dirección de correo electrónico se ve correcta a simple vista.

Luego, esperarán un momento para que se restablezca la contraseña que nunca llegará, porque se envió a [email protected]

Su siguiente paso será, dependiendo de la naturaleza de su negocio, llamar al servicio de atención al cliente, encontrar un competidor con el mismo producto, etc. Ninguno de los espacios en blanco aquí son buenos para usted.

    
respondido por el Scott 08.08.2016 - 08:43
fuente
2

La copia de la dirección de correo electrónico ya ingresada en la página de inicio de sesión a la página de restablecimiento de contraseña es no una falla de seguridad.

La única diferencia es si el usuario debe volver a escribir la dirección que conoce (o robó) en el cuadro de contraseña olvidada para restablecer. Ya tienen esta información. No se filtran datos desconocidos para el usuario al copiar los datos proporcionados por el usuario desde el inicio de sesión a la pantalla de reinicio. El correo electrónico no está visiblemente confirmado y no se modifica nada en el proceso de restablecimiento. Literalmente, la única diferencia es que el usuario no necesita escribir la dirección de correo electrónico dos veces.

Ya que conocen su propio correo electrónico, o el correo electrónico robado, esto no revela nada. Es el equivalente de copiarlo y pegarlo o volver a escribirlo.

    
respondido por el RDragonrydr 05.08.2016 - 21:37
fuente
2

Al seleccionar la opción de contraseña olvidada y asumir que el ID de inicio de sesión es una dirección de correo electrónico (en lugar de un nombre de usuario como el que usan algunos sitios), creo que es una gran idea colocar la dirección de correo electrónico en el campo Dirección de correo electrónico.

En mi opinión, esto no es un problema de seguridad. Si desea, debe realizar una solicitud del lado del servidor cuando el usuario selecciona el enlace de contraseña olvidada. Entonces, ¿por qué no tener el componente IU de la contraseña olvidada ya cargado de alguna manera como una aplicación de una sola página? Entonces, seleccione el enlace de contraseña olvidada y luego muestre la vista de contraseña olvidada?

No tengo conocimiento de un estándar de la industria que haya roto.

En general estás siguiendo el proceso correcto Usted tiene razón si un usuario ingresa las credenciales con las que responde 'Credenciales no válidas' y no proporcione más información.

Al seleccionar las "vistas" de cambio de contraseña olvidadas, rellenar la dirección de correo electrónico y permitir que el usuario seleccione enviar, la respuesta del servidor es "Se ha emitido un correo electrónico de contraseña olvidada".

Si tiene que hacer una solicitud secundaria para obtener la Página de contraseña olvidada, ha identificado correctamente que los Parámetros no deberían estar contenidos en la solicitud GET, la razón de esto es que los registros del lado del servidor almacenarán los parámetros de Cadena de consulta, y dependiendo de su infraestructura y usuarios de administración, puede o no permitir que estos usuarios de administrador conozcan estas cuentas.

    
respondido por el Darragh 05.08.2016 - 12:05
fuente

Lea otras preguntas en las etiquetas