Nginx,防止SQL,XSS攻击的实际配置方法

全网最全的网络资源分享网站

手机扫码查看

标签:

分析/安全Nginx

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

爽剧网 软件宝库 最新热点教程
源码下载 福利导航 云服务器 1折特惠

有的情况下发觉网页访问迟缓,乃至发生 504 不正确,根据 top -i 指令查询网络服务器负载发觉负载标值飙涨到 3.2 之多了,而且延迟时间愈来愈经常直到不断上升的发展趋势,还以为是被攻击了,对到访 IP 开展了阀值限定后实际效果并并不是很显著,CDN 服务项目里限定好多个关键 IP 实际效果仍然并不是很显著,此刻意识到它是被故意扫描仪攻击了应当。

Nginx 防止 SQL 注入、XSS 攻击的实践配置方法-PK技术网

根据网络服务器 waf 的日志纪录剖析得到基本上全是 SQL 注入、XSS 攻击范围,这种攻击都绕开了 CDN 缓存文件标准立即回源要求,这就导致 PHP、MySQL 计算要求愈来愈多,网络服务器负载飙涨就是这个缘故导致的,在日志里能够见到基本上绝大多数全是 GET/POST 方式的要求,尽管 waf 都极致的鉴别和阻拦了,可是由于 Nginx 方面应对措施,因此 依然会对网络服务器负载产生一定的工作压力,因此在 Nginx 里也添加了避免 SQL 注入、XSS 攻击的配置,沒有想起实际效果居然十分的好。

Nginx 防止 SQL 注入、XSS 攻击的实践配置方法-PK技术网


将下边的 Nginx 配置文档编码放进到相匹配网站的.conf 配置文档 [server] 里,随后重新启动 Nginx 就可以起效。


    if ($request_method !~* GET|POST) { return 444; }
    #应用444错误码能够更为缓解网络服务器负载工作压力。
    #避免SQL注入
    if ($query_string ~* (\$|'|--|[+|(%20)]union[+|(%20)]|[+|(%20)]insert[+|(%20)]|[+|(%20)]drop[+|(%20)]|[+|(%20)]truncate[+|(%20)]|[+|(%20)]update[+|(%20)]|[+|(%20)]from[+|(%20)]|[+|(%20)]grant[+|(%20)]|[+|(%20)]exec[+|(%20)]|[+|(%20)]where[+|(%20)]|[+|(%20)]select[+|(%20)]|[+|(%20)]and[+|(%20)]|[+|(%20)]or[+|(%20)]|[+|(%20)]count[+|(%20)]|[+|(%20)]exec[+|(%20)]|[+|(%20)]chr[+|(%20)]|[+|(%20)]mid[+|(%20)]|[+|(%20)]like[+|(%20)]|[+|(%20)]iframe[+|(%20)]|[\<|%3c]script[\>|%3e]|javascript|alert|webscan|dbappsecurity|style|confirm\(|innerhtml|innertext)(.*)$) { return 555; }
     if ($uri ~* (/~).*) { return 501; }
     if ($uri ~* (\\x.)) { return 501; }
    #避免SQL注入 
     if ($query_string ~* "[;'<>].*") { return 509; }
     if ($request_uri ~ " ") { return 509; }
     if ($request_uri ~ (\/\.+)) { return 509; }
     if ($request_uri ~ (\.+\/)) { return 509; }
     #if ($uri ~* (insert|select|delete|update|count|master|truncate|declare|exec|\*|')(.*)$ ) { return 503; }
    #避免SQL注入
     if ($request_uri ~* "(cost\()|(concat\()") { return 504; }
     if ($request_uri ~* "[+|(%20)]union[+|(%20)]") { return 504; }
     if ($request_uri ~* "[+|(%20)]and[+|(%20)]") { return 504; }
     if ($request_uri ~* "[+|(%20)]select[+|(%20)]") { return 504; }
     if ($request_uri ~* "[+|(%20)]or[+|(%20)]") { return 504; }
     if ($request_uri ~* "[+|(%20)]delete[+|(%20)]") { return 504; }
     if ($request_uri ~* "[+|(%20)]update[+|(%20)]") { return 504; }
     if ($request_uri ~* "[+|(%20)]insert[+|(%20)]") { return 504; }
     if ($query_string ~ "(<|%3C).*script.*(>|%3E)") { return 505; }
     if ($query_string ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})") { return 505; }
     if ($query_string ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})") { return 505; }
     if ($query_string ~ "proc/self/environ") { return 505; }
     if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%三维)") { return 505; }
     if ($query_string ~ "base64_(en|de)code\(.*\)") { return 505; }
     if ($query_string ~ "[a-zA-Z0-9_]=http://") { return 506; }
     if ($query_string ~ "[a-zA-Z0-9_]=(\.\.//?)+") { return 506; }
     if ($query_string ~ "[a-zA-Z0-9_]=/([a-z0-9_.]//?)+") { return 506; }
     if ($query_string ~ "b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)b") { return 507; }
     if ($query_string ~ "b(erections|hoodia|huronriveracres|impotence|levitra|libido)b") {return 507; }
     if ($query_string ~ "b(ambien|bluespill|cialis|cocaine|ejaculation|erectile)b") { return 507; }
     if ($query_string ~ "b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)b") { return 507; }
    #这儿大伙儿依据自身状况加上删剪以上分辨主要参数,cURL、wget这种的屏蔽掉有点极端化了,但要“宁可错杀一千,不能放过我一个”。
     if ($http_user_agent ~*    YisouSpider|ApacheBench|WebBench|Jmeter|JoeDog|Havij|GetRight|TurnitinBot|GrabNet|masscan|mail2000|github|wget|curl|Java|python) { return 508; }
    #跟上面一样,大伙儿依据自身网站具体情况来加上删剪下边的屏蔽掉阻拦主要参数。
     if ($http_user_agent ~* "Go-Ahead-Got-It") { return 508; }
     if ($http_user_agent ~* "GetWeb!") { return 508; }
     if ($http_user_agent ~* "Go!Zilla") { return 508; }
     if ($http_user_agent ~* "Download Demon") { return 508; }
     if ($http_user_agent ~* "Indy Library") { return 508; }
     if ($http_user_agent ~* "libwww-perl") { return 508; }
     if ($http_user_agent ~* "Nmap Scripting Engine") { return 508; }
     if ($http_user_agent ~* "~17ce.com") { return 508; }
     if ($http_user_agent ~* "WebBench*") { return 508; }
     if ($http_user_agent ~* "spider") { return 508; } #这一会危害中国一些百度搜索引擎网络爬虫,例如:搜狗搜索
    #阻拦各故意要求的UA,能够根据剖析网站日志文档或是waf日志做为参照配置。
     if ($http_referer ~* 17ce.com) { return 509; }
    #阻拦17ce.com网站限速连接点的要求,因此 明月一直都说这种测速网站的数据信息仅作参考不可以真的的。
     if ($http_referer ~* WebBench*") { return 509; }
    #阻拦WebBench或是相近工作压力检测工具,别的专用工具只必须拆换名字就可以。


经检测和感受,以上程序执行很平稳,融合网络服务器上的服务器防火墙标准及其 waf 的阻拦和屏蔽掉,现阶段网站都早已恢复过来,网络服务器负载也是一切正常范畴。刻意共享出去期待能够协助到有必须的网站站长们!


本文最后更新于2021-3-2,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
分享到:
打赏
未经允许不得转载:

作者: PK技术网, 转载或复制请以 超链接形式 并注明出处 PK技术网
原文地址: 《Nginx,防止SQL,XSS攻击的实际配置方法》 发布于2021-3-2

评论

切换注册

登录

忘记密码?

您也可以使用第三方帐号快捷登录

切换登录

注册

Nginx,防止SQL,XSS攻击的实际配置方法

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏