php如何预防sql注入漏洞


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]);

}

}

}

}

?>


上一篇:sql注入回显点是什么

下一篇:域名解析后怎么设置白名单


php sql注入 sql注入漏洞
Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器