我看到了关于这个问题的各种提问,但还有一些问题没有被问到。如果用户忘记了密码,我希望他们只需要使用他们的电子邮件地址就能重置密码(即没有安全问题/答案)。密码以盐加密哈希的形式存储,因此无法恢复。相反,我只想让用户在确认已请求重置后输入新密码。
一个常见的方法是简单地:
1)创建一个随机的Guid /具有密码学强度的随机数
2)向用户的电子邮件地址发送包含随机数的唯一URL
3)确认后,要求用户更改密码
然而,这难道不会受到中间人攻击吗?如果将临时密码通过互联网发送到电子邮件是不安全的,那么将其与仅发送唯一URL有何区别?
我错过了什么关键步骤,可以使该系统更安全(或者有更好的重置密码方式)?
谢谢
一个常见的方法是简单地:
1)创建一个随机的Guid /具有密码学强度的随机数
2)向用户的电子邮件地址发送包含随机数的唯一URL
3)确认后,要求用户更改密码
然而,这难道不会受到中间人攻击吗?如果将临时密码通过互联网发送到电子邮件是不安全的,那么将其与仅发送唯一URL有何区别?
我错过了什么关键步骤,可以使该系统更安全(或者有更好的重置密码方式)?
谢谢