El hash seguro del nombre de usuario en la base de datos protege la confidencialidad de esa información en caso de que su base de datos caiga en manos de un atacante.
Sin embargo, ten en cuenta que si utilizas el nombre de usuario sin hash de otras formas en tu aplicación, un atacante aún puede obtener información.
Por ejemplo, mencionas:
Cuando el usuario inicia sesión, el nombre de usuario no copiado se almacena en una sesión.
Si asumimos que su información de sesión se envía al cliente como parte de la respuesta http normal para un usuario que ha iniciado sesión (por ejemplo, como una cookie), un atacante puede obtener el nombre de usuario si obtiene acceso a ese token de sesión. . OWASP aconseja no almacenar información específica del usuario en las sesiones enviadas a un cliente.
Usando este nombre de usuario no dañado, se pueden obtener datos específicos del usuario desde
La base de datos y el nombre de usuario incluso se pueden mostrar en las páginas de
usuarios registrados.
En este caso, el hecho de que pueda usar un nombre de usuario sin hash para buscar información en la base de datos implica que hay cierta información de usuario sin hash en la base de datos, lo que socava el hashing del nombre de usuario en primer lugar. Además, si la información se puede mostrar en las páginas, tenga en cuenta que a menos que la conexión entre el cliente y el servidor esté asegurada en la capa de transporte (TLS), ese nombre de usuario puede ser visible para un atacante.