用于登录页面的自定义PHP函数以保护数据库

时间:2017-05-12 04:48:05

标签: php security code-injection

我已为我的登录输入编写此功能以确保安全:

function secureLogin($ary = array()){
      try{
          $securedArray = array();
          foreach($ary as $val){
            $val = str_replace("'","",$val);
            //$val = str_replace("%","",$val);
            $val = str_replace("drop ","",strtolower($val));
            $val = str_replace("show ","",strtolower($val));
            $val = str_replace("insert ","",strtolower($val));
            $val = str_replace("create ","",strtolower($val));
            $val = str_replace("update ","",strtolower($val));
            $val = str_replace("select ","",strtolower($val));
            $val = str_replace("or ","",strtolower($val));
            $val = str_replace('"',"",$val);
            $val = str_replace(";","",$val);
            $securedArray[] = strip_tags($val);
            }
        }catch(Exception $exc){
                return $exc->getMessage();
                }
             return $securedArray;
        }

我已经使用SQLMAP,Havij和Acunetix工具等一些工具对其进行了测试,结果显示效果不错,但我希望得到一些专家建议,使我的登录页面/输入从登录页面尽可能安全。

1 个答案:

答案 0 :(得分:0)

我不明白你要在代码中捕获什么,所有str_replace都不会引发任何PDOException。

如果您使用正确准备的陈述,则不需要替换任何单词。此外,只删除重要的单词,这些不会使您登录安全,只需要攻击者更难以利用它。