我已经看到有关此问题的各种问题,但有几个问题尚未提出。如果用户忘记了密码,我希望他们能够仅使用他们的电子邮件地址来重置密码(即没有安全问题/答案)。密码存储为加盐哈希,因此无法恢复。相反,我只是希望用户在确认他们已请求重置后输入新密码。
提到的一种常见方法是简单地:
1) 创建一个随机 Guid/加密强随机数
2) 将包含随机数的唯一 URL 发送到用户的电子邮件地址
3) 确认后,要求用户更改密码
但是,这不是容易受到MITM
攻击吗?如果通过 Internet 向电子邮件发送临时密码是不安全的,那么这样做与简单地发送攻击者可以导航到的唯一 URL 有什么区别?我是否错过了使该系统更安全的关键步骤(或者是否有更好的重置密码的方法)?
谢谢