"忘记密码 "的最佳做法是什么,我的方法可以接受吗?[已关闭]

问题描述 投票:-1回答:1

我正在建立一个 "忘记我的密码 "系统,找到了一些关于如何实现它的建议,但当我这样做时,我意识到我可能有一个问题。

  • 用户选择 "忘记密码",输入电子邮件
  • 如果电子邮件存在于用户表中:时间戳、用户ID和随机代码被添加到单独的数据库表中。
  • 向用户发送含有随机代码链接的电子邮件。
  • 点击链接,从存在随机代码的表行中全部选择。
  • 然后用户可以更改该用户ID的密码。

不过,我不知道这是不是最安全的方法,如何保证每次的随机码都是唯一的?而且似乎有可能循环猜测随机代码(我知道,很偏执,极不可能,但还是有可能?

我使用的是PHP。

php database authentication
1个回答
-1
投票

我不知道这是否是最好的方法,但你可以有一个活跃的随机代码表.当有人请求重置密码时,一个独特的随机代码将被添加到表中.因为该表只持有活跃的代码(当前试图更改密码的人),它应该是一个小列表,所以很简单,以确保它是随机的.在说,5分钟内,代码被删除,或者当用户完成更改密码时。

我希望这能帮助你。

© www.soinside.com 2019 - 2024. All rights reserved.