¿Debe informar a los usuarios si se ha recibido un correo electrónico durante la validación del registro? [duplicar]

11

En muchas aplicaciones web, se requiere que el correo electrónico sea un campo único, y los usuarios no pueden registrar una cuenta si su correo electrónico ya existe en la base de datos.

Al realizar la validación en el formulario de registro, es probable que compruebe si se ha recibido un correo electrónico y le informa al usuario si lo ha hecho ya que puede elegir uno diferente o intentar restablecer su contraseña.

Sin embargo, si está proporcionando esta información, parece que los usuarios malintencionados podrían probar si los usuarios existen en la base de datos. Alguien podría probar de forma plausible su sitio con datos filtrados de hacks de renombre, y si los usuarios reutilizan sus contraseñas entre sitios, su sitio es potencialmente vulnerable.

La solución a esto podría ser simplemente dar más retroalimentación genérica sobre lo que salió mal sin mencionar específicamente el correo electrónico, aunque eso podría ser frustrante para el usuario promedio que intenta registrarse. Y si su formulario de registro simplemente requiere un correo electrónico y una contraseña, es bastante obvio que si se produce algún error es probable que el correo electrónico ya exista en la base de datos.

¿Cuál es la mejor manera desde una perspectiva de seguridad para gestionar informar a un usuario de que ya se ha recibido un correo electrónico en el registro?

    
pregunta IsThatQueeblo 11.02.2015 - 00:12
fuente

2 respuestas

11

Una solución intuitiva y simple es asegurarse de que un script automatizado (script malicioso) no pueda intentar registrarse con una lista de correos electrónicos para descubrir cuáles están registrados. Por ejemplo, use el desafío CAPTCHA como parte de la inscripción para asegurarse de que es un ser humano que intenta registrar una cuenta. De esta manera, incluso si se intentan pocos correos electrónicos de usuarios, no se puede verificar un número masivo. Tenga en cuenta que estamos asumiendo que un CAPTCHA fuerte no se puede romper fácilmente.

Pero si es muy sensible y debe ocultar quién está registrado en el sitio web de destino, incluso de usuarios humanos, finalice el registro y no muestre ningún mensaje de error al usuario de que el correo electrónico ya está registrado; y al final del proceso, simplemente informe al usuario que ahora tiene que confirmar que el correo electrónico les pertenece, por favor vaya y revise su correo electrónico; En el backend, si el correo electrónico ya está registrado, no haga nada; simplemente envíe un correo electrónico al propietario del correo electrónico e infórmeles: parece que intentó volver a registrarse en nuestro servicio, si olvidó que tiene una cuenta con nosotros, este es su nombre de usuario y, si no puede recuerde su contraseña, vaya a la página de restablecimiento de contraseña. Para estar en el lado seguro, puede mencionar que si no intentó registrarse con nosotros nuevamente, ignore este correo electrónico.

Si el correo electrónico no está registrado en la base de datos, en el backend, cree un token de uso único aleatorio en una URL y envíelo al nuevo correo electrónico registrado y pídales que confirmen la nueva cuenta. para crear una nueva cuenta.

De esta manera es que absolutamente ocultas todo de los malos;

    
respondido por el Goli E 11.02.2015 - 01:30
fuente
8

Si esto es una preocupación (es decir, si el hecho de ser miembro de una persona se consideraría información confidencial), una solución es procesar el registro normalmente desde la perspectiva del usuario en la página de registro, pero enviar un correo electrónico diferente que explica que ya existe una cuenta / da detalles sobre cómo restablecer la cuenta existente (o reemplazarla si corresponde) en lugar de un correo electrónico de confirmación para verificar la dirección.

    
respondido por el AJAr 11.02.2015 - 00:18
fuente

Lea otras preguntas en las etiquetas