php防止xss攻击以及sql注入
php防止xss攻击以及sql注入
1、核心函数
/**
防止sql注入已经xxs攻击
*/
function SafeFilter (&$arr)
{
$ra=array('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/','/select/','/from/','/update/','/delete/','/drop/','/alter/','/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 ($arr as $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]);
}
}
}else{
if(!get_magic_quotes_gpc()) //不对magic_quotes_gpc转义过的字符使用addslashes(),避免双重转义。
{
$arr = addslashes($arr); //给单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)
//加上反斜线转义
}
$arr = preg_replace($ra,'',$arr); //删除非打印字符,粗暴式过滤xss可疑字符串
$arr = htmlentities(strip_tags($arr)); //去除 HTML 和 PHP 标记并转换为 HTML 实体
}
}
2、将这部分引入公共文件
//进行sql注入或者xxs攻击防护
if($_POST)
{
SafeFilter($_POST);
}
if($_GET)
{
SafeFilter($_GET);
}
if($_COOKIE)
{
SafeFilter($_COOKIE);
}
- php特殊字符防止xss攻击以及sql注入
- addslashes,htmlspecialchars,htmlentities转换或者转义php特殊字符防止xss攻击以及sql注入
- CI框架全局防止SQL注入(防止XSS攻击)的方法 分类: php CI框架 防SQL注入 防XSS攻击 2014-02-10 17:04 918人阅读 评论(0) 收藏
- PHP防止SQL注入和XSS攻击
- PHP防止sql注入
- PHP实现的防止跨站和xss攻击代码【来自阿里云】
- 转:php防止sql注入的一点心得
- 源码世界讲解 php防止sql注入
- 防止SQL注入和XSS攻击Filter
- php 防止sql注入
- php中防止SQL注入的最佳解决方法
- 转:php中防止SQL注入的方法
- SpringBoot之防止SQL注入和XSS攻击
- php自带的几个防止sql注入的函数
- php网站如何防止sql注入?
- php防止SQL注入
- PHP防止SQL注入的实现代码
- 防止WordPress利用xmlrpc.php进行暴力破解以及DDoS
- PHP中该怎样防止SQL注入?
- PHP连接MySQL的2种方法小结以及防止乱码