热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

一般的“用户密码重置”算法是如何的?

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

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

回复内容:

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

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

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

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

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

推荐阅读
author-avatar
手机用户2702933567
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有