自己寫的一款sql注入檢測函數,可以有效的檢測用戶post,get過來的參考進行過濾,有需要的朋友參考一下。 代碼如下 復制代碼
<?php
/*sql 注入 字符的檢測
* 在所有用戶輸入的數據,post傳參, get傳參 都需要檢測下
* 如果有匹配到關鍵字 則 返回該關鍵字 否則返回false
* 這個和敏感字符的檢測不是一樣的
*/
function Filter_SQL($strData)
{
$strFilter=$blnFlag=$arrayFilter='';
$strFilter="'|and|(|)|exec|insert|select|delete|update|count|*|%27|chr|mid|master|truncate|char|declare|union|or"; //需要過濾的字符,可以自己添,"|"是分隔符
$blnFlag=false; //過濾標志,如果產生過濾,那麼就是真
$arr=explode("|",$strFilter);
$str="";
foreach($arr as $row)
{
$str.=preg_quote($row)."|";
}
$str=trim($str,"|");
if(preg_match('/'.$str.'/i',$strData,$word))
{
return $word[0];
}
return false;
}
/*
測試
$string="fasdf union ";
echo Filter_SQL($string);
*/
?>