所以这是交易:我想强迫我的客户每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 - 密码当然是哈希!
答案 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 );
编辑: