这是一个基于php的防火墙程序,可以在没有服务器支持的情况下拦截sql注入和xss攻击。为什么我们需要这样的防火墙?因为很多服务器没有开启网站防火墙,所以开发者水平参差不齐。参考nginx上最star的防火墙程序编写https://github.com/loveshell/ngx_lua_waf.git安装composerrequirexielei/waf说明$waf=new\Xielei\Waf\Waf();$waf->run();一般情况下,请在用户端页面引入防火墙,不需要后台操作。自定义拦截规则$rules=['\.\./',//禁止参数包含../'\<\?',//禁止php脚本出现'\s*or\s+.*=.*',//匹配'或1=1,防止sql注入'select([\s\S]*?)(from|limit)',//防止sql注入'(?:(union([\s\S]*?)select))',//防止sql注入'having|updatexml|extractvalue',//防止sql注入'sleep\((\s*)(\d*)(\s*)\)',//防止SQL盲注'benchmark\((.*)\,(.*)\)',//防止SQL盲注'base64_decode\(',//防止SQL变体注入'(?:from\W+information_schema\W)',//防止sql注入'(?:(?:current_)user|database|schema|connection_id)\s*\(',//防止sql注入'(?:etc\/\W*passwd)',//防止监听linux用户信息'into(\s+)+(?:dump|out)file\s*',//禁用mysql导出功能'group\s+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)\(',//禁用webshel??l相关的部分功能'(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*and\s+.*=.*'//匹配and1=1];$waf=new\Xielei\Waf($rules);$waf->run();自定义拦截页面$waf=new\Xielei\Waf\Waf();if(!$waf->check()){echo'非法请求';die;}开源地址https://github。com/协磊/waf
