2009-07-24 15 views
5

Estoy buscando alguna guía sobre la implementación de un servicio de recuperación de contraseñas en ASP.NET que envía un enlace al usuario que los envía a una página de restablecimiento de contraseña ya que no quiero enviar contraseñas existentes o regeneradas en texto claro.
He visto algunas sugerencias sobre el uso de la identificación de miembro como un parámetro querystring; sin embargo, creo que esto puede ser objeto de abuso ya que la tabla de membresía personalizada con la que estoy trabajando usa ints intead de guid como campo de identificación.
Estoy pensando que necesito crear una tabla personalizada que contenga una id. Única (larga) junto con la Id. De miembro que se completa cada vez que un usuario solicita una recuperación de contraseña. Esta identificación se pasará como parte de la cadena de consulta en el enlace a la página de restablecimiento de contraseña. Cuando un usuario hace clic en el enlace, la página buscará el ID en la tabla personalizada y obtendrá la identificación del miembro desde allí, lo que le permite al usuario cambiar la contraseña en contra de esa membresía.
¿Esto parece un enfoque válido; ¿es excesivo? Cualquier otra sugerencia sería muy apreciada.¿Cómo implementar un enlace de recuperación de contraseña en ASP.NET?

Respuesta

3

Así sería como lo manejaría. Pero no se olvide de eliminar la fila de la base de datos cuando haya terminado e implementar algún tipo de control de inundaciones. Sé que hay toneladas (literalmente) de combinaciones para las guías, pero ejecutar una simple comprobación de IP contra cuántos intentos en los últimos 5 minutos y bloquearlos después de x intentos podría ayudar a aumentar la seguridad del reinicio. Esto se haría más importante cuanto mayor sea su base de usuarios y cuán a menudo olviden sus contraseñas.

2

Suena perfectamente útil. Mi única recomendación sería usar un valor calculado en lugar de una identificación aleatoria para el enlace de correo electrónico. Tal vez una versión hash del nombre de usuario de la persona? Esto es puramente nacido de mi desdén por los números aleatorios. :)

Cuestiones relacionadas