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 Identity 重置密码

关于在 asp.net mvc 中实现忘记密码功能的一些问题

如何从 ASP.NET Core 中的密码重置令牌中检索用户?

使用 ASP.NET 身份重置密码时令牌无效

在哪里可以找到在 ASP .NET MVC2 中实现密码恢复的 C# 示例代码

生成重置密码令牌的最佳实践