关于php:设置数据库’user’表以进行密码恢复

Set database 'user' table for password recovery

我有个问题。我正在执行密码恢复,然后我想:"如果一个‘陌生人’进行未经授权的密码恢复,更改别人的密码怎么办?"所以,我的第一个决定是:我将在"用户"表中设置两个字段,分别称为"密码"和"临时密码"。如果真正的用户要求密码恢复,新的随机密码将存储在"临时密码"中,并发送电子邮件。这样,恶意用户就不会更改任何其他人的密码,电子邮件所有者可以拒绝更改密码的尝试。是吗?提前感谢您的帮助。问候语


我建议您通过将临时密码存储在与您的user表分开的表中来规范化这一点。每个用户在其生命周期内很可能会多次尝试密码恢复,您将希望为后代存储这些尝试的每个记录。

如果将该字段保留在user表中,则第一个密码恢复请求之后的每个后续请求都将覆盖上一个请求。

确保此新表中有一列指示当前处于活动状态的请求,并且有服务器端/数据库脚本,确保每个用户ID只能有一行具有活动标志。