gpt4 book ai didi

security - 'forgot password' 实现的最佳方法?

转载 作者:行者123 更新时间:2023-12-03 04:22:18 24 4
gpt4 key购买 nike

我正在寻找实现“忘记密码”功能的最佳方法。

我想出了两个想法:

  1. 当用户点击“忘记密码”时,用户需要输入用户名、电子邮件,可能还有出生日期或姓氏。然后一封带有临时密码的邮件将发送到用户的电子邮件帐户。用户使用临时密码登录并重置密码。

  2. 类似,但电子邮件将包含一个链接,让用户重置密码。

或者有人可以建议我一种更好、更安全的方法吗?我也在考虑发送临时密码或链接,强制用户在24小时内重置密码,否则临时密码或链接将无法使用。如何做到这一点?

最佳答案

更新:2013 年 5 月修订,以获得更好的方法

  1. 用户输入用户名并点击“忘记密码”。我还建议选择输入电子邮件地址而不是用户名,因为有时也会忘记用户名。
  2. 系统有一个表password_change_requests,其中包含IDTimeUserID 列。当新用户按下该按钮时,就会在表中创建一条记录。 时间列包含用户按下“忘记密码”按钮的时间。 ID 是一个字符串。创建一个长的随机字符串(例如 GUID),然后像密码一样进行哈希处理(这本身就是一个单独的主题)。然后,该哈希值将用作表中的“ID”。
  3. 系统会向用户发送一封电子邮件,其中包含链接。该链接还包含原始 ID 字符串(散列之前)。该链接将类似于:http://www.mysite.com/forgotpassword.jsp?ID=01234567890ABCDEF。忘记密码.jsp页面应该能够检索ID参数。抱歉,我不懂 Java,所以无法说得更具体。
  4. 当用户点击电子邮件中的链接时,他会被移至您的页面。该页面从 URL 中检索 ID,再次对其进行哈希处理,然后对照表进行检查。如果存在这样的记录,并且不超过 24 小时,系统就会提示用户输入新密码
  5. 用户输入新密码,点击“确定”,从此每个人都过上幸福的生活......直到下一次!

关于security - 'forgot password' 实现的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1102781/

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