我已为我的登录输入编写此功能以确保安全:
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工具等一些工具对其进行了测试,结果显示效果不错,但我希望得到一些专家建议,使我的登录页面/输入从登录页面尽可能安全。
答案 0 :(得分:0)
我不明白你要在代码中捕获什么,所有str_replace都不会引发任何PDOException。
如果您使用正确准备的陈述,则不需要替换任何单词。此外,只删除重要的单词,这些不会使您登录安全,只需要攻击者更难以利用它。