¿Es seguro tener una función de "correo electrónico ya no disponible" en su formulario de registro?

12

Acabo de implementar una nueva función en el formulario de registro de mi sitio que comprueba si todavía hay una dirección de correo electrónico disponible para registrar una cuenta. Me pregunto si es seguro mostrarle a un usuario que una determinada dirección de correo electrónico ya no está disponible.

¿Es esta característica un riesgo de seguridad relacionado con la privacidad de mis miembros y cómo puedo usarlo mientras me defiendo contra los robots que buscan direcciones de correo electrónico?

    
pregunta xxdriesxx 17.03.2012 - 16:14
fuente

3 respuestas

12

Fuga información sobre las direcciones de correo electrónico que ya se han utilizado, pero esto es solo un problema si un atacante puede verificar rápidamente las posibles direcciones de correo electrónico.

La solución simple es:

  • solo permite un pequeño número de intentos o solicitudes de una IP particular en una sesión

De esta manera, un cliente válido aún puede probar un par si su elección inicial no está disponible, pero un atacante que intenta enumerar las direcciones de correo electrónico tendrá que iniciar nuevas sesiones.

    
respondido por el Rory Alsop 17.03.2012 - 16:42
fuente
15

Una forma de implementar la verificación de disponibilidad sin dar ningún comentario a los posibles atacantes es enviar siempre un correo electrónico a la dirección utilizada para el registro. Cómo podría verse el contenido del correo electrónico:

  • "Una cuenta para [email protected] [con nombre de usuario xy] se acaba de registrar en $ site. Haga clic aquí para confirmar".
  • "Alguien intentó registrar una cuenta para [email protected] [con nombre de usuario xy] en $ site, sin embargo, esta cuenta ya existe. Si olvidó su contraseña, haga clic aquí. Si no inició el registro, ignore este correo electrónico".

De esta manera, solo el verdadero propietario de la dirección de correo electrónico podrá verificar si la dirección ya se ha utilizado para suscribirse al servicio. Este enfoque es, por ejemplo, utilizado por Ubuntu One.

    
respondido por el twobeers 20.03.2012 - 10:18
fuente
3

No, este es un vulnerabilidad de enumeración de usuarios .

  

Como atacante si puedo usar su página de inicio de sesión u contraseña olvidada para limitar mi lista de 10000 objetivos a 1000 objetivos, lo haré.

La mejor implementación para resolver esto que he visto es que tanto los formularios de registro como los de contraseña olvidada son procesos de varios pasos (exactamente el mismo back-end / proceso después del formulario inicial).

El formulario comienza con un solo campo que solicita dirección de correo electrónico . El usuario ingresa [email protected] y luego hace clic en enviar. Luego aparecen la misma página pidiéndoles que verifiquen su cuenta de correo electrónico.

Si el usuario ya está registrado, recibe un correo electrónico que contiene un enlace para restablecer la contraseña con un token aleatorio que caduca en unas pocas horas.

Si el usuario no está registrado, recibe un correo electrónico que contiene un enlace de registro con un token aleatorio para que puedan continuar con el proceso de registro. Como beneficio adicional, ¡ya ha validado su dirección de correo electrónico para cuando más tarde olviden su contraseña!

Nadie que no tenga acceso a la cuenta de correo electrónico [email protected] puede determinar si el usuario está registrado o no.

Consulte el ejemplo en publicación del blog de Troy Hunt sobre restablecimientos de contraseña y la vulnerabilidad de enumeración del nombre de usuario en alotporn.com para un buen ejemplo de lo importante que es cumplir con las expectativas de privacidad del usuario.

    
respondido por el SilverlightFox 11.02.2015 - 10:05
fuente

Lea otras preguntas en las etiquetas