我已经创建了一个用户登录系统。php重置密码链接
在我忘记的密码页面。我使用php电子邮件给用户。 用户将收到一封带有链接
链路
[email protected]&confirm_code=uefu8878ef...
用户可以通过点击该链接访问的页面reset_password。
但是,这是使用GET,这意味着任何人都可以检查浏览器历史记录以访问此页面并重置密码。
有什么建议吗?
我已经创建了一个用户登录系统。php重置密码链接
在我忘记的密码页面。我使用php电子邮件给用户。 用户将收到一封带有链接
链路
[email protected]&confirm_code=uefu8878ef...
用户可以通过点击该链接访问的页面reset_password。
但是,这是使用GET,这意味着任何人都可以检查浏览器历史记录以访问此页面并重置密码。
有什么建议吗?
链接使用后,请将确认码标记为已使用/无效,以便它不能再次使用。
如果您想隐藏电子邮件,也可以生成一个自定义标记来执行此操作。令牌必须是唯一的,并将其与电子邮件地址链接在数据库中。在使用时删除它(或将其标记为已使用)。
将您的确认代码保存在数据库中,并在它与电子邮件地址之间建立链接,并给它一段时间,以便在时间过期后现在过期,现在每次请求此页面时首先查看confirmation_code相关到这个电子邮件,如果它是检查使用时间与数据库内的时间,那么如果它没有过期标记为授权然后处理该请求,否则删除它的记录在所有
然后关于到期更安全我认为如果将有效期限设置为1小时,这将有意义。希望这会有所帮助:)
这是否意味着我必须每次都做一个确认码? –
另外,当您创建代码时,添加到期日期。如果不使用它,不要让它永远坐在那里。 –
,我也会建议使用post。除了上面提出的解决方案 –