Erlo

分享一个php的防火墙,拦截SQL注入和xss

2020-09-22 11:30:42 发布   382 浏览  
页面报错/反馈
收藏 点赞

一个基于php的防火墙程序,拦截sql注入和xss攻击等

 

安装

composer require xielei/waf

使用说明

$waf = new XieleiWafWaf();
$waf->run();

自定义拦截规则

$rules = [
    '../', //禁用包含 ../ 的参数
    '<?', //禁止php脚本出现
    's*ors+.*=.*', //匹配' or 1=1 ,防止sql注入
    'select([sS]*?)(from|limit)', //防止sql注入
    '(?:(union([sS]*?)select))', //防止sql注入
    'having|updatexml|extractvalue', //防止sql注入
    'sleep((s*)(d*)(s*))', //防止sql盲注
    'benchmark((.*),(.*))', //防止sql盲注
    'base64_decode(', //防止sql变种注入
    '(?:fromW+information_schemaW)', //防止sql注入
    '(?:(?:current_)user|database|schema|connection_id)s*(', //防止sql注入
    '(?:etc/W*passwd)', //防止窥探linux用户信息
    'into(s+)+(?:dump|out)files*', //禁用mysql导出函数
    'groups+by.+(', //防止sql注入
    '(?:define|eval|file_get_contents|include|require|require_once|shell_exec|phpinfo|system|passthru|preg_w+|execute|echo|print|print_r|var_dump|(fp)open|alert|showmodaldialog)(', //禁用webshell相关某些函数
    '(gopher|doc|php|glob|file|phar|zlib|ftp|ldap|dict|ogg|data):/', //防止一些协议攻击
    '$_(GET|post|cookie|files|session|env|phplib|GLOBALS|SERVER)[', //禁用一些内置变量,建议自行修改
    '<(iframe|script|body|img|layer|div|meta|style|base|object|input)', //防止xss标签植入
    '(onmouseover|onerror|onload|onclick)=', //防止xss事件植入
    '||.*(?:ls|pwd|whoami|ll|ifconfog|ipconfig|&&|chmod|cd|mkdir|rmdir|cp|mv)', //防止执行shell
    's*ands+.*=.*' //匹配 and 1=1
];

$waf = new XieleiWaf($rules);
$waf->run();

自定义拦截页面

$waf = new XieleiWafWaf();
if(!$waf->check()){
    echo '非法请求';
    die;
}


开源地址
https://github.com/xielei/waf
登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认