0

我正在努力在 ASP.Net MVC 2 Web 应用程序中实现重置/忘记密码功能。

我在这里阅读了许多帖子,这些帖子基本上提供了以下步骤:

  • 用户点击“重置”密码。
  • 要求用户提供电子邮件。
  • 用户输入电子邮件并单击发送。
  • 您创建一个安全哈希(可以使用 RNGCryptoServiceProvider)
  • 在 PasswordReset 表中存储哈希、用户信息(电子邮件地址是唯一的,因此我可以存储用户 ID??这是正确的吗?)和日期时间信息(用于过期)
  • 将带有哈希作为参数的链接发送到指定的电子邮件地址。
  • 我想在不使用安全问题的情况下完成此操作。

    *我的问题是用户点击链接后的验证过程。我是否只是在 PasswordReset 表中查找哈希和电子邮件地址?如果用户电子邮件帐户被黑客入侵怎么办。然后黑客可以简单地点击链接并将密码重置为任何内容。我错过了如何在验证过程中集成必要的安全检查。*

    4

    1 回答 1

    0

    您可以在“重置”过程中添加安全问题。

    我不确定下面链接的普遍共识是什么,但那里的步骤似乎是合适的。 https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet

    于 2013-05-17T20:07:36.537 回答