/**
* 通用漏洞防护补丁
* 功能说明:防护XSS,SQL,代码执行,文件包含等多种高危漏洞
* Class CheckRequestServer
*/
class CheckRequestServer
{
/**
* 过滤提交数据正则
* @var array
*/
protected static $filterUrl = [
'xss' => "\\=\\+\\/v(?:8|9|\\+|\\/)|\\%0acontent\\-(?:id|location|type|transfer\\-encoding)",
]; /**
* 过滤提交数据正则
* @var array
*/
protected static $filterArgs = [
'xss' => "[\\'\\\"\\;\\*\\<\\>].*\\bon[a-zA-Z]{3,15}[\\s\\r\\n\\v\\f]*\\=|\\b(?:expression)\\(|\\<script[\\s\\\\\\/]|\\<\\!\\[cdata\\[|\\b(?:eval|alert|prompt|msgbox)\\s*\\(|url\\((?:\\#|data|javascript)",
'sql' => "[^\\{\\s]{1}(\\s|\\b)+(?:select\\b|update\\b|insert(?:(\\/\\*.*?\\*\\/)|(\\s)|(\\+))+into\\b).+?(?:from\\b|set\\b)|[^\\{\\s]{1}(\\s|\\b)+(?:create|delete|drop|truncate|rename|desc)(?:(\\/\\*.*?\\*\\/)|(\\s)|(\\+))+(?:table\\b|from\\b|database\\b)|into(?:(\\/\\*.*?\\*\\/)|\\s|\\+)+(?:dump|out)file\\b|\\bsleep\\([\\s]*[\\d]+[\\s]*\\)|benchmark\\(([^\\,]*)\\,([^\\,]*)\\)|(?:declare|set|select)\\b.*@|union\\b.*(?:select|all)\\b|(?:select|update|insert|create|delete|drop|grant|truncate|rename|exec|desc|from|table|database|set|where)\\b.*(charset|ascii|bin|char|uncompress|concat|concat_ws|conv|export_set|hex|instr|left|load_file|locate|mid|sub|substring|oct|reverse|right|unhex)\\(|(?:master\\.\\.sysdatabases|msysaccessobjects|msysqueries|sysmodules|mysql\\.db|sys\\.database_name|information_schema\\.|sysobjects|sp_makewebtask|xp_cmdshell|sp_oamethod|sp_addextendedproc|sp_oacreate|xp_regread|sys\\.dbms_export_extension)",
'other' => "\\.\\.[\\\\\\/].*\\%00([^0-9a-fA-F]|$)|%00[\\'\\\"\\.]",
]; /**
* 数据过滤
* @param $filterData
* @param $filterArgs
*/
protected static function filterData($filterData, $filterArgs)
{
foreach ($filterData as $key => $value) {
if (!is_array($key)) {
self::filterCheck($key, $filterArgs);
} else {
self::filterData($key, $filterArgs);
}
if (!is_array($value)) {
self::filterCheck($value, $filterArgs);
} else {
self::filterData($value, $filterArgs);
}
}
} /**
* 数据检查
* @param $str
* @param $filterArgs
*/
protected static function filterCheck($str, $filterArgs)
{
foreach ($filterArgs as $key => $value) {
if (preg_match("/" . $value . "/is", $str) == 1 || preg_match("/" . $value . "/is", urlencode($str)) == 1) {
//记录日志 - 信息拦截
exit('您的提交带有不合法参数,谢谢合作');
}
}
} /**
* 数据检查入口
*/
public static function run()
{
$referer = empty($_SERVER['HTTP_REFERER']) ? [] : [$_SERVER['HTTP_REFERER']];
$queryString = empty($_SERVER["QUERY_STRING"]) ? [] : [$_SERVER["QUERY_STRING"]]; self::filterData($queryString, self::$filterUrl);
self::filterData($_GET, self::$filterArgs);
self::filterData($_POST, self::$filterArgs);
self::filterData($_COOKIE, self::$filterArgs);
self::filterData($referer, self::$filterArgs);
}
}
CheckRequestServer::run();

  

php检查漏洞防护补丁-防护XSS,SQL,文件包含等多种高危漏洞的更多相关文章

  1. 黄聪:PHP 防护XSS,SQL,代码执行,文件包含等多种高危漏洞

    版本:v1.1更新时间:2013-05-25更新内容:优化性能功能说明: 可以有效防护XSS,sql注射,代码执行,文件包含等多种高危漏洞. 使用方法: 将waf.php传到要包含的文件的目录 在页面 ...

  2. 可以有效防护XSS,sql注射,代码执行,文件包含等多种高危漏洞。

    http://bbs.aliyun.com/read/137391.html <?php /** * 云体检通用漏洞防护补丁v1.1 * 更新时间:2013-05-25 * 功能说明:防护XSS ...

  3. phpMyAdmin Transformation 任意文件包含/远程代码执行漏洞

    漏洞参考 https://yq.aliyun.com/articles/679633 国外提供了一个在线测试的靶场     默认密码  root  toor https://www.vsplate.c ...

  4. OpenSSL再爆多处高危漏洞

    OpenSSL团队于北京时间6月5号晚8点左右发布了5个安全补丁,这次的更新涉及多处高危漏洞,连接:http://www.openssl.org/news/ 受影响的版本包括: OpenSSL 1.0 ...

  5. Nagios ’status.cgi‘文件权限许可和访问控制漏洞

    漏洞名称: Nagios ’status.cgi‘文件权限许可和访问控制漏洞 CNNVD编号: CNNVD-201307-013 发布时间: 2014-02-21 更新时间: 2014-02-21 危 ...

  6. WEB安全漏洞扫描与处理(下)——安全报告分析和漏洞处理

    1 AppScan生成的安全报告分析 利用AppScan生成安全报告,可以提前对要生成的安全报告的内容进行选择,如下图,最全的安全报告内容,包括摘要,安全性问题,咨询和修订建议,应用程序数据等. 生成 ...

  7. ✔PHP文件包含漏洞全面总结

    我的另一篇博客总结的不够全面,但依然有借鉴价值:https://www.cnblogs.com/Zeker62/p/15192610.html 目录 文件包含的定义 文件包含漏洞常见函数 文件包含漏洞 ...

  8. PHP文件包含漏洞攻防实战(allow_url_fopen、open_basedir)

    摘要 PHP是一种非常流行的Web开发语言,互联网上的许多Web应用都是利用PHP开发的.而在利用PHP开发的Web应用中,PHP文件包含漏洞是一种常见的漏洞.利用PHP文件包含漏洞入侵网站也是主流的 ...

  9. 如何导入大sql文件到虚拟主机mysql数据库

    大部分网站虚拟主机为了安全起见,都限制了通过命令或者phpMyAdmin导入大sql文件到mysql数据库,例如godaddy只允许站长通过phpMyAdmin上传不超过2m的sql文件,但实际上我们 ...

随机推荐

  1. Spark on Yarn遇到的问题及解决思路

    原文:http://www.aboutyun.com/thread-9425-1-1.html 问题导读1.Connection Refused可能原因是什么?2.如何判断内存溢出,该如何解决?扩展: ...

  2. linux乱码问题

    命令输入: export LANG=zh_CN.GBK grep 匹配时高亮 先执行:export GREP_OPTIONS='--color=auto'; 后执行:grep 匹配内容 文件; 描述: ...

  3. Message Decoding

    Some message encoding schemes require that an encoded message be sent in two parts. The first part, ...

  4. Android进阶笔记05:View、SurfaceView 和GLSurfaceView 的关系和区别

    1.  Android游戏当中主要的除了控制类外就是显示类View.SurfaceView是从View基类中派生出来的显示类.android游戏开发中常用的三种视图是:    (1) view.Sur ...

  5. Volly的使用及图片错位优化

    listview显示数据,利用第三方jar包Volley下的ImageLoader加载图片时,当数据类型不一致,布局复用的时候会出现图片错位,因此需要自定义IMymageLoader实现ImageLo ...

  6. oracle数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1)

    数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1) 文档内容   用途   详细信息   Patchsets ...

  7. CSS的总结(选择器,伪类等...)

    关于组合选择器可参考:http://www.cnblogs.com/starof/p/4453458.html 主要内容 CSS概述 CSS和HTML结合的四种方式 CSS样式优先级和代码规范 CSS ...

  8. KMP模版

    #include<iostream> #include<cstdio> #include<cstring> using namespace std; ]; void ...

  9. hdu 2852 树状数组

    思路:加一个数e就用update(e,1).删除元素e就用update(e,-1).找比a大的第k大的元素就用二分查找. #include<iostream> #include<cs ...

  10. Spring 简单入门实例

    首先新建一个Web 项目 导入相应Jar 包 <?xml version="1.0" encoding="UTF-8"?> <beans xm ...