gpt4 book ai didi

asp.net - 为 "Forgotten Password"编写代码的最佳方法

转载 作者:行者123 更新时间:2023-12-04 04:58:26 26 4
gpt4 key购买 nike

网络网站,我想实现忘记密码。我正在使用以下步骤

  • 表单具有用于输入登录ID和电子邮件ID以及CAPTCHA的输入框
  • ,当用户输入详细信息并提交时,在验证后在后端生成新密码,并在数据库中替换旧密码。
  • 新的密码通过电子邮件发送给用户。

  • 请问我做对与否?

    是否有其他相同的安全机制?

    [编辑]
    谢谢,我收到了您的答复。确实,这是一种安全机制。但是在这里我毫不怀疑
  • 当用户在“忘记密码”页面上输入loginId和电子邮件地址时,应该向用户显示什么消息?
  • 有效用户和恶意用户的消息是否相同?
  • 使用CSRF token 的优势?任何帮助/链接
  • 当用户单击链接时,我该怎么办;因为我猜用户应该自动登录到他们的帐户,然后我才有2个选择(第一个),将新密码自动发送给用户(第二个),新表格将显示给用户,用户将两次输入旧密码和新密码?

  • 请帮忙?

    最佳答案

    我知道您为什么想要验证码,但我会采用另一种方法。

  • 当要求重设密码时,请检查是否在最近的X分钟内未请求该帐户重设密码。如果已经要求输入密码,则忽略重置请求。
  • 检查请求重设密码的IP。如果该IP在最近的Y分钟内已请求重设密码,请忽略该请求。
  • 如果1和2中通过检查,则表明该帐户存在。如果不忽略该请求。
  • 如果到此为止,请生成一个一次性 token ,该 token 将在Z分钟内到期,并生成一个包含此 token 的密码重置URL。通过电子邮件发送到注册的电子邮件地址。加载URL后,提示您输入新密码并进行重置。

  • 对于那些认为您应该告诉用户电子邮件去向的人,我非常不同意。即使您将其限制为域名,这也是“信息泄漏”。例如,说我已经在JeffAtwoodEatsBabies.com上注册为blowdart。如果Jeff要求我重新设置密码,而您显示了注册域,那么他将看到idunno.org。这是我的个人领域,因此Jeff会知道打击歌手的用户实际上是我。这是 不好糟糕的事情。我不应该使用hotmail或gmail或其他任何方式进行注册,以保护自己免受来自向所有人和其他人显示电子邮件域的代码的侵害。

    另外,您根本不应该显示错误消息。无论发生什么情况,实际上都没有注册用户名,或者发出了太多请求,或者天塌了,您应该告诉用户密码重置过程已经开始。通知用户不存在帐户是更多的信息泄漏。

    您可以做的最后一件事是将CSRF token 添加到重设请求页面,这样就不能从其他网站驱动它了。

    跟进

    因此,请回答您的其他问题。
  • 显示的消息由您决定。 “将有关重置密码的说明通过电子邮件发送到该帐户的注册电子邮件中”是一个主意,但这实际上取决于您的听众。
  • 已经在上面解决了。
  • 维基百科是一个很好的starting point。如何执行取决于您的平台,这是另一个完整的问题!对于ASP.NET,您可以查看我的codeplex项目http://anticsrf.codeplex.comViewStateUserKey
  • 单击链接时,我将首先针对要应用的用户名验证URL中的 token ,然后允许用户输入新密码,或生成新密码并通过电子邮件发送。您不能提示输入旧的内容,因为要点是用户已经忘记了它!
  • 关于asp.net - 为 "Forgotten Password"编写代码的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1990669/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com