El propósito de no revelar el identificador de usuario activo es evitar la enumeración de un gran número de cuentas.
Estrictamente hablando, puede protegerse contra esto permitiendo cuentas duplicadas, pero este es un diseño terrible y lo llevará a todo tipo de problemas.
Otra forma en que puedes hacer esto es asignar a los usuarios un identificador, construyendo uno que no se usa. Pero esta es una experiencia de usabilidad tan pobre que podría no valer la pena *.
La forma sensata de mitigar el riesgo es implementar cualquier característica de anti-enumeración, por ejemplo, un captcha de buena calidad, para ralentizar cualquier intento de enumeración. Entonces el diseño es razonablemente seguro.
El riesgo residual es que deja abierta la verificación de una cuenta de muy alto valor, por ejemplo, [email protected]. Luego mitiga este riesgo al implementar también un control contra los intentos de descifrado de contraseñas, etc.
* Salzer y Shroeder, La protección de la información en sistemas informáticos , Sección IA3) h) Aceptabilidad psicológica: es esencial que la interfaz humana esté diseñada para que sea fácil de usar, de modo que los usuarios apliquen los mecanismos de protección de forma rutinaria y automática. Además, en la medida en que la imagen mental del usuario de sus objetivos de protección coincida con los mecanismos que debe utilizar, los errores se minimizarán. Si debe traducir su imagen de sus necesidades de protección a un lenguaje de especificación radicalmente diferente, cometerá errores.