2013年6月22日 星期六

AmyPHP 更新使用者的 BUG

今天又發現了 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

沒有留言 :