3 回答
TA贡献1794条经验 获得超8个赞
我个人会发送一封包含指向短期页面链接的电子邮件,让他们设置新密码。使页面名称成为某种UID。
如果那样对您不利,那么向他们发送一个新密码并强迫他们在首次访问时进行更改也可以。
选项1容易得多。
TA贡献1784条经验 获得超2个赞
一些重要的安全问题:
密码短语问题/答案实际上降低了安全性,因为它通常成为流程中最薄弱的环节。通常,猜测某人的答案比输入密码要容易得多-特别是如果问题没有经过仔细选择。
假设电子邮件在您的系统中充当用户名(出于各种原因,通常建议使用该用户名),则对密码重置请求的响应不应指示是否找到了有效的帐户。它仅应说明已将密码请求电子邮件发送到提供的地址。为什么?表示电子邮件不存在/不存在的响应允许黑客通过提交多个密码请求(通常通过burp套件之类的HTTP代理)并记录是否找到电子邮件来收集用户帐户列表。为了防止登录收获,您必须确保没有与登录/身份验证相关的功能提供任何指示,以指示何时在登录/密码重置表单上输入了有效的用户电子邮件。
有关更多背景信息,请查阅《Web应用程序黑客手册》。这是有关创建安全身份验证模型的绝佳读物。
编辑:关于您编辑中的问题-我建议:
“密码请求电子邮件已发送到您提供的地址。如果没有很快收到电子邮件,请检查您的垃圾邮件文件夹。如果没有收到电子邮件,则您提供的电子邮件不存在任何帐户。”
在易用性和安全性之间需要进行权衡。您必须根据上下文进行权衡-安全对您和您的用户是否足够重要,以证明给您带来不便?
TA贡献2012条经验 获得超12个赞
使用新密码发送电子邮件。
到达时强制更改密码,然后输入新密码。
这样可以确保需要密码的人是唯一进入该帐户的人。
如果嗅探到电子邮件,则可以(当然)有人进入该帐户,但是真正的参与者会立即发现此消息(因为您刚发送给他们的密码不起作用)。
还将密码更改的确认发送给用户。
如果有人得到了新密码,然后收到一封电子邮件,写着“谢谢您更改密码”,那么他们会很困惑,如果不这样做,他们将与管理员交谈。
添加回答
举报