¿Cuál es la forma más segura de manejar contraseñas olvidadas/restablecer contraseñas? ¿Debo enviar la contraseña por correo electrónico al usuario? Si es así, ¿los obligas a reiniciarlo? ¿O les permite reiniciarlo de inmediato (sin enviar un correo electrónico) y requerir otra información para verificar que sean ellos? ¿O hay un método mejor?Formas seguras para restablecer la contraseña o dar una contraseña anterior
Respuesta
No se puede enviar por correo electrónico la contraseña para el usuario, ya que no lo sepa. Has "hashed" por applying something like PBKDF2 or bcrypt para el almacenamiento, ¿verdad?
Si restablece la contraseña sin confirmarlo con el propietario de la cuenta, un atacante puede negarle acceso, por lo menos hasta que revise su correo electrónico, utilizando la dirección de correo electrónico de la víctima para solicitar un restablecimiento.
Un método lo suficientemente seguro para muchas aplicaciones es enviar por correo electrónico un enlace al propietario de la cuenta, que contiene un gran número generado al azar. Este token solo debe ser válido por un tiempo limitado. Si el propietario desea restablecer su contraseña, hace clic en el enlace y esto los autentica como propietario de la cuenta. El propietario de la cuenta puede entonces especificar una nueva contraseña.
Supongo que lo vas a hacer programáticamente? ¿O es una pregunta para Server Fault?
Una de las formas es enviar un enlace a la cuenta de correo electrónico del usuario. Él/ella hace clic en el enlace y se le redirige a su formulario web seguro donde restablecen la contraseña.
no por correo electrónico la contraseña para el usuario
No debe enviar contraseñas por correo electrónico. Aquí hay un proceso paso a paso que he usado:
- Ofrezca a los usuarios la opción de restablecer la contraseña.
- Esta opción guarda un token único para un usuario. El token finalmente expira (horas, días o días).
- Se envía un enlace por correo electrónico al usuario que incluye el token.
- El usuario hace clic en el enlace enviado por correo electrónico.
- Si el token existe y no ha caducado, el enlace carga un nuevo formulario de contraseña. Si no es, no cargue el nuevo formulario de contraseña.
- Una vez que el usuario establece una nueva contraseña, elimine el token y envíele un correo electrónico de confirmación.
Hasta que se establezca la nueva contraseña, la contraseña anterior debe permanecer activa. No te olvides de hash y sal las contraseñas!
- 1. ¿Es mejor restablecer la contraseña o devolver la contraseña perdida?
- 2. ¿Cómo generar una contraseña aleatoria o URL temporal para restablecer la contraseña en Zend Framework?
- 3. Generar URL temporal para restablecer la contraseña
- 4. - Recuperable (Restablecer contraseña)
- 5. Formulario Django + para restablecer la contraseña
- 6. Cómo recuperar o restablecer la contraseña del paquete SSIS?
- 7. ¿Cómo recibir una notificación cuando un usuario cambia la contraseña o solicita un restablecimiento de contraseña?
- 8. Diseñar la plantilla de correo para restablecer la contraseña
- 9. Restablecer el estado de recuperación de contraseña
- 10. ¿Cómo sabe el sistema cuándo una contraseña contiene partes de una contraseña anterior?
- 11. Restablecer la contraseña de raíz de MySQL cuando no se conoce la contraseña actual
- 12. ¿Cómo puedo restablecer una contraseña de usuario en hudson?
- 13. Restablecer la contraseña de root de mysql5 en macports
- 14. Restablecer la contraseña de ASP.NET: ¿problemas de seguridad?
- 15. ¿Cómo restablecer la contraseña de root de mysql?
- 16. Cómo restablecer la contraseña de administrador de Django
- 17. Membresía ASP.NET Control ChangePassword - Necesito verificar la contraseña anterior
- 18. Renderizar el formulario Editar contraseña con contraseña
- 19. Tengo una contraseña encriptada con md5, ¿cómo darle la contraseña al usuario cuando usa "Olvidé mi contraseña"?
- 20. JOptionPane para obtener la contraseña
- 21. Parece una sal fuerte para una contraseña
- 22. ¿Cómo puedo crear una contraseña?
- 23. Recuperar una contraseña
- 24. ¿Cómo puedo dar este enfoque de campo de contraseña?
- 25. restablecer contraseña de root con configuración mysql incorrecta
- 26. contraseña para postgres
- 27. Almacenar una contraseña
- 28. Encriptación de la contraseña
- 29. animando UITextField para indicar una contraseña incorrecta
- 30. ¿Olvidó su contraseña? ¿Cuál es el mejor método para implementar una función de contraseña olvidada?
Hubo una gran discusión sobre este mismo tema recientemente: http://stackoverflow.com/questions/2283937/how-should-i-ethethical-approach-user-password-storage-for-later-plaintext-retriev –
Si su sistema tiene la capacidad de buscar la contraseña de un usuario y enviársela por correo electrónico, ha hecho algo muy incorrecto. Nunca deberías poder buscar la contraseña de un usuario. Solo debería poder actualizar una contraseña entrante y compararla, o cambiarla y enviar la nueva contraseña. – Scott