ASP.NET MVC 中密码重置的最佳实践
Posted
技术标签:
【中文标题】ASP.NET MVC 中密码重置的最佳实践【英文标题】:Best Practice for Password Reset in ASP.NET MVC 【发布时间】:2011-03-08 11:15:10 【问题描述】:我希望模拟来自 www.live.com 的密码重置流程。那是(暂时跳过电子邮件选项):
1) 屏幕询问/确认用户名
2) 询问重置方法(账号验证或邮箱重置)
3) 收集账户信息并进行验证
4) 向用户提供密码重置输入。
所以我一直在寻找有关如何正确执行此操作的任何提示。我计划让每个“步骤”返回到相同的操作并在我进行时构建模型(根据我所在的步骤将属性/字段放入隐藏输入或常规输入)。然后在第 4 步,我会重新验证帐户信息(以防有人试图破解并直接使用用户名和新密码进行登录)。
这一切都将通过 SSL 完成,我能看到的唯一缺点是,对于第 4 步,我将在隐藏输入中呈现用户的“秘密问题答案”,以便在完成密码之前再次提交/验证重置。
这是实现此屏幕的正确方法还是有一些我没有看到的安全漏洞?
【问题讨论】:
【参考方案1】:我不是这方面的专家,但我喜欢this 相关问题中的想法。在第 4 步中使用哈希来识别用户,而不是通过往返发送他们的秘密答案。
【讨论】:
以上是关于ASP.NET MVC 中密码重置的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章
关于在 asp.net mvc 中实现忘记密码功能的一些问题
如何从 ASP.NET Core 中的密码重置令牌中检索用户?