Algunos han afirmado que ambos son equivalentes - esto no es cierto para las siguientes razones:
1) con enlace de restablecimiento si el atacante tiene acceso al correo electrónico y por lo tanto utiliza enlace de restablecimiento para cambiar la contraseña, van a alertar al usuario incluso si el atacante elimina el correo electrónico y las notificaciones de restablecimiento real. Con la contraseña de correo si el usuario solicita el restablecimiento y el atacante ve la contraseña aleatoria (incluso mucho más tarde), el atacante puede acceder a la cuenta del usuario en su sitio sin alertar al usuario.
2) Además, si envía una contraseña, el usuario puede tener la tentación de volver a utilizar la contraseña en otros sitios y el atacante con acceso al mismo tiene acceso a otros sitios incluso si los otros sitios no son vulnerables. Recuperación de Cuenta.
Con la contraseña aleatoria enviada en el correo electrónico y el enlace de restablecimiento, si el atacante controla el correo electrónico del usuario, tiene acceso a la cuenta del usuario. Lo que puede hacer en este caso depende de cuántos controles tiene el usuario; por ejemplo, si tiene su dirección de correo electrónico principal y alternativa, entonces debe enviar notificaciones a ambas cuentas de correo electrónico cuando se solicite y use el restablecimiento, o si tiene un teléfono, puede enviarles un mensaje de texto además del correo electrónico, etc. Puede monitorear el uso en sí mismo, pero eso es más difícil.
Un par de otras cuestiones:
Se puede utilizar el enlace varias veces? Además de caducar y tener un valor impredecible (con MAC adjunto para que pueda verificarse sin el estado del servidor), es posible que desee activar una alerta interna si se intenta restablecer la contraseña en una cuenta varias veces (registrar éxito/falla, dirección IP remota, marca de tiempo, etc.) y abortar primero y poner la cuenta en algún estado inactivo.
Sería una buena idea ver cuánto abuso está ocurriendo para ver si necesita más mecanismos de defensa para evitar adquisiciones de cuentas a través de los flujos de recuperación de su cuenta (depende del valor de una cuenta).
También es muy importante en este caso mantenerse actualizado en direcciones de correo electrónico y otra información de contacto si puede (las direcciones de correo electrónico se reciclan cuando no se usan) y cómo la dirección de correo electrónico u otra información puede actualizarse/agregarse y notificaciones
Como siempre, asegúrese de que sus notificaciones (texto, enlace, página de inicio) no sean fáciles para los phishers.
Algunos de estos problemas, por supuesto, pueden no ser muy relevantes a menos que tenga un sitio grande.
duplicado: http://stackoverflow.com/questions/664673/how-to-implement-password-resets/ 711767 – AviD