3

我已经创建了一个用户登录系统。

在我忘记密码的页面。我使用 php 电子邮件给用户。用户将收到一封包含链接的电子邮件

关联-

....?email=abc@gmail.com&confirm_code=uefu8878ef...

用户可以单击此链接访问 reset_password 页面。

然而,这是使用 GET,这意味着任何人都可以检查浏览器历史记录以访问此页面并重置密码。

有什么建议吗?

4

3 回答 3

6

使用链接后,将确认码标记为已使用/无效,因此无法再次使用。

于 2013-04-02T14:37:31.337 回答
1

如果您还想隐藏电子邮件,请生成自定义令牌来执行此操作。令牌必须是唯一的,并与数据库中的电子邮件地址保持链接。已使用时将其删除(或标记为已使用)。

于 2013-04-02T14:39:31.117 回答
0

将您的确认代码保存在数据库中,并在其与电子邮件地址之间建立链接并给它一个时间,以便在时间到期后它会过期,现在每次请求此页面时首先查看与此电子邮件相关的确认代码和如果是检查使用时间和数据库内的时间,那么如果它没有过期,则将其标记为已授权,然后处理请求,否则删除它的记录

然后关于到期更安全,我认为如果您将到期日期设置为 1 小时,这将是有意义的。希望这会有所帮助:)

于 2013-04-02T14:48:48.657 回答