今天又發現了 AmyPHP 一個嚴重 BUG, 中午吃完香 Q 麵回來, 用 iPad 上 stockbot 網站看看執行狀況, 卡好, superuser 竟然無法登入! 這是怎麼回事? 回想了一下出去吃飯前我改了 superuser 的資料, 該不會是 update user 時把密碼也改了吧? 果然, 檢查 sys.php 的 update_users 模組, 嘿嘿, 當初把 add_users 的程式複製過來改時, 忘記把 md5 拿掉, 所以原本的 md5 再 md5 一次存進去, 當然密碼也被改啦! 正確作法應該先檢查使用者是否有更改密碼, 沒改就原來的 md5 密碼存進去, 有改就必須 md5 加密 :
$id=$_REQUEST["id"];
//先檢查密碼是否有更改
$RS=search("users","id",$id);
if (is_array($RS)) { //有找到
if ($_REQUEST["password"]==$RS[0]["password"]) { //沒改
$data_array["password"]=$_REQUEST["password"];
} //end of if
else { //有改
$data_array["password"]=md5($_REQUEST["password"]);
} //end of else
} //end of if
沒有留言:
張貼留言