我有一个问题。我正在实施密码恢复,然后我想:"如果一个'陌生人'进行未经授权的密码恢复,更改别人的密码?" 所以,我的第一个决定是:我将在'用户'中设置两个字段。表,称为密码'和' temp_password'。如果真实用户要求恢复密码,则新的随机密码将存储在' temp_password'并将发送一封电子邮件。通过这种方式,恶意用户不会更改任何其他密码,并且电子邮件所有者可以拒绝密码更改尝试。是对的吗?预先感谢您的帮助。 问候
答案 0 :(得分:0)
我建议您通过将临时密码存储在user
表的单独表中来规范化。每个用户最有可能在其生命周期内进行多次密码恢复尝试,并且您希望存储每次尝试的后续记录。
如果您将字段保留在user
表中,则第一个密码恢复请求后的每个后续请求都将覆盖前一个请求。
确保此新表中有一列指示哪个请求当前处于活动状态,并且具有服务器端/数据库脚本,以确保每个用户ID只能有一行具有活动标记。