php预防SQL注入漏洞的方法:
利用magic_quotes_gpc指令或它的搭当addslashes()函数进行过滤,例如:
<?php//php防注入和XSS攻击通用过滤
$_GET&&SafeFilter($_GET);
$_POST&&SafeFilter($_POST);
$_COOKIE&&SafeFilter($_COOKIE);
functionSafeFilter(&$arr)
{
$ra=Array('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/','/script/','/javascript/','/vbscript/','/expression/','/applet/'
,'/meta/','/xml/','/blink/','/link/','/style/','/embed/','/object/','/frame/','/layer/','/title/','/bgsound/'
,'/base/','/onload/','/onunload/','/onchange/','/onsubmit/','/onreset/','/onselect/','/onblur/','/onfocus/',
'/onabort/','/onkeydown/','/onkeypress/','/onkeyup/','/onclick/','/ondblclick/','/onmousedown/','/onmousemove/'
,'/onmouseout/','/onmouseover/','/onmouseup/','/onunload/');
if(is_array($arr))
{
foreach($arras$key=>$value)
{
if(!is_array($value))
{
if(!get_magic_quotes_gpc())//不对magic_quotes_gpc转义过的字符使用addslashes(),避免两重转义。
{
$value=addslashes($value);//给单引号(')、双引号(")、反斜线(\)与NUL(NULL字符)
加上反斜线转义
}
$value=preg_replace($ra,'',$value);//删除非打印字符,粗鲁式过滤xss可疑字符串
$arr[$key]=htmlentities(strip_tags($value));//去除HTML和PHP标记并转换为HTML实体
}
else
{
SafeFilter($arr[$key]);
}
}
}
}
?>
本文来源:https://www.yuntue.com/post/61009.html | 云服务器网,转载请注明出处!