Authentication 忘记密码:实现忘记密码功能的最佳方法是什么?
我想知道在网站上创建忘记密码功能的最佳方法是什么。我已经看到了很多,这里有一些或组合:Authentication 忘记密码:实现忘记密码功能的最佳方法是什么?,authentication,passwords,forgot-password,change-password,Authentication,Passwords,Forgot Password,Change Password,我想知道在网站上创建忘记密码功能的最佳方法是什么。我已经看到了很多,这里有一些或组合: 密码短语问题/答案(1个或多个) 使用新密码发送电子邮件 在屏幕上输入新密码 通过电子邮件确认:必须单击链接以获取新密码 要求用户输入新密码的页面 您会为忘记密码功能添加哪些组合或附加步骤?我想知道他们是如何申请新密码的,以及他们最终是如何获得密码的 我的操作原理是无法检索密码;必须提供/生成新密码 编辑我喜欢Cory所说的如果用户名存在就不显示,但我想知道应该显示什么。我认为一半的问题是用户忘记了他们使
- 密码短语问题/答案(1个或多个)
- 使用新密码发送电子邮件
- 在屏幕上输入新密码
- 通过电子邮件确认:必须单击链接以获取新密码
- 要求用户输入新密码的页面
编辑我喜欢Cory所说的如果用户名存在就不显示,但我想知道应该显示什么。我认为一半的问题是用户忘记了他们使用的电子邮件地址,显示某种“不存在”的消息是有用的。有什么解决方案吗?使用新密码发送电子邮件 当他们到达时强制更改密码并输入新密码 这确保了想要密码的人将是唯一进入帐户的人 如果电子邮件被嗅探,有人可以进入该帐户(当然),但真正的一方会立即发现这一点(因为您刚刚发送给他们的密码不起作用) 还向用户发送密码更改确认 如果有人得到了新密码,然后发了一封邮件说“thanx for Changed the password”,他们会感到相当困惑,如果他们没有这样做,他们会与管理员交谈
选项1要简单得多。选项1。不是一个好主意,因为通常他的想法很容易被别人猜到。莎拉·佩林(Sarah Palin)的个人电子邮件(我想是雅虎)就是这样被第三方黑客入侵的
其他选项更好,之前的文章已经概述了细节。使用电子邮件验证/密码重置链接将为您提供更好的安全性。
如果你环顾四周,大多数网站都是这样做的,人们对这种验证非常熟悉,因此我建议使用这种类型的身份验证。一些重要的安全问题:
- 密码短语问题/答案实际上会降低安全性,因为它通常会成为过程中最薄弱的环节。猜测某人的答案通常比猜测密码更容易——特别是在问题没有被仔细选择的情况下
- 假设电子邮件在您的系统中作为用户名运行(这通常是出于各种原因而推荐的),对密码重置请求的响应不应表明是否找到了有效的帐户。它应该简单地说明密码请求电子邮件已发送到提供的地址。为什么?指示电子邮件存在/不存在的响应允许黑客通过提交多个密码请求(通常通过HTTP代理,如burp套件)并注意是否找到电子邮件来获取用户帐户列表。为了防止登录捕获,您必须确保登录/auth相关功能不提供任何指示,表明有效用户的电子邮件何时已输入登录/pass重置表单
你们觉得怎么样?我想的是在发送给用户的链接中对数据进行签名。然后,当用户单击链接,服务器收到呼叫时,服务器也会得到加密部分,并可以验证数据是否未被触动。 我已经为这个用例实现了一个JAVA项目。它位于GitHub上,开源。它完美地回答了你的问题。。。用Java实现 至于电子邮件中的链接,它会生成链接,并在使用时对其进行验证 每件事都有解释(如果遗漏了什么,请告诉我…) 看看: 见a
这是一个客户端web应用程序,它使用auth流,自述文件包含所有解释。它指导您实现:选项1还有一个优点,即