php - 一般的“用户密码重置”算法是如何的?
黄舟
黄舟 2017-04-10 17:14:51
[PHP讨论组]

比如,当用户Email收到密码重置的链接后,单击链接可以打开“重设密码”的页面,该页面上一般只有两个文本框:密码框和密码确认框,这个时候用户提交的时候如何保证安全?主要是如何保证重置的确实是Email链接里指定的用户的密码(而不是别人的密码)?

补充:
重置密码表单上除了上文提到的一个密码框和一个密码确认框外,我想一般还有一个User_id之类的隐藏框吧?貌似现代浏览器可以修改隐藏框的实际值,然后提交后就变成更改其他人的密码了!

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
PHP中文网

你仔细看下那个链接,是有一个随机的token参数的,点开链接如果token不匹配提示错误页面,匹配则是修改密码页面,而且token也是跟着密码一起发给后台的,后台还是要再检验一遍的。至于token肯定是存在后台数据库中的,且越长越安全。如果简单点可以采用uuid算法作为生成token算法。

高洛峰

链接是发往用户邮箱的,也就是只有进入了邮箱才可能得到链接,有这一层安全验证已经差不多能保证“打开密码重置链接的人”即是需要重置密码的人了。再可以让链接中的token有效期短一些或只能校验一次,就可以把安全级别再提高很多了

ringa_lee

补充楼上的答案。在token上有效期上再加上只能用一次。更安全了。如果还要增加安全。可以限制url的来源是用户对应的邮箱服务商。其实有有效期和只能用一次就够了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号