Ocultar "correo electrónico ya en uso" al registrarse por defecto

Antecedentes

Con la configuración predeterminada actual, al registrarse en una cuenta con un correo electrónico que ya está registrado, el formulario de registro lo informará:

Estamos cambiando la configuración predeterminada para no proporcionar esta información. En su lugar, el formulario de registro se verá así, independientemente de si el correo electrónico ya está registrado o no:

Esto también afecta a los restablecimientos de contraseña de manera similar. Con la configuración desactivada, el formulario proporciona comentarios inmediatos de que el correo electrónico está en el sistema:

Con la configuración habilitada, no revela esa información:

¿Por qué lo estamos cambiando?

Un actor malintencionado puede utilizar esta información para realizar una enumeración de cuentas, haciéndole saber si ciertos usuarios existen en este foro, lo que luego puede permitirle dirigirse a esos usuarios con phishing.

¿No afectará negativamente a los usuarios legítimos?

El caso aquí es si un usuario olvida que ya tiene una cuenta, e intenta registrarse o restablecer la contraseña usando el mismo correo electrónico, lo cual debería ser una ocurrencia relativamente rara. Pero incluso entonces, simplemente recibirán un correo electrónico informándoles que ya tienen una cuenta.

El cambio, en última instancia, no afecta la capacidad de los usuarios legítimos para registrarse o acceder a sus cuentas.

Pero prefiero el valor predeterminado anterior

Si ha cambiado esta configuración en algún momento, el nuevo valor predeterminado no anulará la configuración personalizada. Si desea volver al valor predeterminado anterior, puede establecer la configuración hide_email_address_taken en false.

Nota: estamos considerando ocultar esta configuración del sitio de la página de configuración de administración en el futuro.

10 Me gusta

¿Qué sucede en el caso en que el usuario recuerda mal la dirección de correo electrónico que utilizó para registrarse?

Por ejemplo, supongamos que el usuario cree que se registró como example@gmail.com pero en realidad se registró como example@yahoo.com. Intentarán restablecer la contraseña proporcionando la dirección de correo electrónico example@gmail.com, pero no hay ninguna cuenta con esa dirección de correo electrónico.

Si una cuenta coincide con ted@discourse.org, deberías recibir un correo electrónico con instrucciones sobre cómo restablecer tu contraseña en breve.

Si el usuario simplemente no recibe un correo electrónico en ese caso, entonces nunca sabrá que proporcionó la dirección de correo electrónico incorrecta, y no sabrá cuándo/si debe intentarlo de nuevo con una dirección de correo electrónico diferente.

En cambio, el mensaje debería decir simplemente: “Deberías recibir un correo electrónico con instrucciones sobre cómo restablecer tu contraseña en breve”, y el usuario debería recibir un correo electrónico explicando “Alguien solicitó un restablecimiento de contraseña para example@gmail.com, pero no hay ninguna cuenta con esa dirección de correo electrónico”.

Esto no permitirá a nadie realizar una enumeración de cuentas, pero permitiría al usuario saber que envió la dirección de correo electrónico incorrecta y que intente con otra.

5 Me gusta

El problema con este enfoque es que permite a actores maliciosos activar el envío de correos electrónicos a direcciones que nunca han interactuado con tu instancia, o que no existen.

Esto podría llevar a un número mucho mayor de correos electrónicos enviados, lo que podría generar un alto costo monetario. También podría provocar un gran aumento de usuarios que informan de spam y una mayor tasa de rebote, lo que podría hacer que los operadores como Gmail incluyan en la lista negra los correos electrónicos tuyos.

5 Me gusta

Los atacantes ya podrían hacer eso simplemente registrando nuevas cuentas. Si el atacante conoce 100.000 direcciones de correo electrónico, puede registrar 100.000 cuentas, y Discourse enviará a cada una de ellas un correo electrónico de activación, que cada usuario podría marcar como spam.

Enviar correos electrónicos de “no se puede restablecer la contraseña, tu cuenta no existe” a direcciones de correo electrónico de cuentas que no existen no hace que ese ataque sea más fácil ni más difícil.

Este ataque no es un problema para la mayoría de los sitios, pero si te preocupa, deberías usar el plugin Discourse hCaptcha, que aumenta el coste para el atacante. (Meta no lo usa; la mayoría de los foros alojados por Discourse no lo usan).

Creo que si Discourse acepta mi sugerencia de empezar a enviar correos electrónicos de “no se puede restablecer la contraseña, tu cuenta no existe” a direcciones de correo electrónico de cuentas que no existen, tendría sentido que el plugin hCaptcha funcionara tanto en el formulario de restablecimiento de contraseña como en el de registro. (Yo todavía no necesitaría/usaría hCaptcha).

3 Me gusta

Sí, eso es válido. Solo pensé en el caso por sí solo, sin considerar otras áreas donde ya es posible y, como sucede, completamente impráctico de prevenir.

¿Pero no lo saben?

  1. Olvidé mi contraseña y quiero acceder a este sitio. Ingreso lo que creo que es el correo electrónico correcto.
  2. No recibo un enlace para restablecer la contraseña.

Así que ahora sé automáticamente una de dos opciones: Una, ingresé el correo electrónico incorrecto o Dos, el sitio no está funcionando correctamente.

Mis opciones ahora son: intentar con otro correo electrónico, o intentar contactar a alguien que administre el sitio.

Ahora, con tu sugerencia, recibo un correo electrónico que me dice que la cuenta no existe. Mis opciones son intentar con otro correo electrónico o contactar a alguien que administre el sitio. Es el mismo punto final sin pasos adicionales.

1 me gusta

Excepto… la mayoría de los usuarios comunes no piensan de esa manera, o en absoluto.

1 me gusta