新密码与之前的3个密码不同

时间:2015-12-01 14:02:00

标签: php mysql security change-password

所以这是交易:我想强迫我的客户每3个月更改一次密码。这很简单。 但我也希望他们选择一个与之前3个密码不同的密码。

困难的是,我将4个信息(最后3个密码和最后一个密码更改日期)存储在数据库的同一行。

所以我设置row-->old_passwords = date()::psw_1::psw_2::psw_3 并检查if($POST['password']== psw_1 || $POST['password']== psw_2 || $POST['password']== psw_3)

但是我如何将新密码存储为psw_3,旧密码成为psw_2而另一个psw_1 - 最终删除原来的psw_1?

不要担心CWE-257 - 密码当然是哈希!

1 个答案:

答案 0 :(得分:0)

你应该做一个" UPDATE"查询,用新密码更新字段? 像这样的东西应该可以工作,但一定要防止mysql注入。

如@Fred -ii-所说,$POST['password']永远不会奏效,你应该读一读超级全球。 $_POST['password']会让你有更好的机会实现你想要做的事情;)

$mysql->query("UPDATE tableStoringPwd pwd SET pwd.psw1 = pwd.psw2  , pwd.psw2 = pwd.psw3, pwd.psw3 = '" . $newPwd . "' WHERE userId = ". $userId );

编辑: