防止SQL注入和XSS攻击的Nginx实用配置方法
最近更新 2021年11月25日
资源编号 20983

防止SQL注入和XSS攻击的Nginx实用配置方法

2021-11-25 WordPress教程 0 457
下单流程:
选择资源
赞助获取
网盘下载
额外(二次开发 网站建设)
¥ 0牛币
立即下载 升级会员 下单教程 售后支持
🔊 下载须知
下载前请认真阅读本重要提示:(如下载链接失效或支付未回调,请联系站长QQ972908224或在网站发私信给站长,信息一定要有:网站会员名称、购买金额、资源链接,见字后会第一时间处理,晚上23点至早上8点期间是站长休息时间,留言即可,请勿频繁发信息。本站以用户的需求为基础,将最有价值的信息和资源分享给广大编程人员及源码爱好者在本地电脑端进行调试、参考和研究,本站不提供任何技术服务!所有资源禁止在服务器或者虚拟机下进行联网搭建运营,禁止任何商业环境使用!所有资源展示图片和描述不代表本站的立场!本站只是存储平台!如需运营请购买正版!杜绝利用本站资源进行触犯国家法律法规,下载者如触犯以上声明,所产生的一切后果由下载者自行承担!请悉知!其次,源码模板过多不能保证每个细节都符合你的需求,也可能存在未知的BUG与瑕疵、残次和版本过旧、破解版本过期等问题。你下载的资源和程序源码组件因其特殊性均为可复制品,所以不支持任何理由的退款兑现;请认真阅读本站声明和相关条款,谨慎斟酌后再下载
详情介绍

昨天下午发现网站访问速度慢,甚至有 504 错误。通过 top -i 命令检查服务器负载,发现负载值飙升到了 3.2 之多,而且还在持续上升,越来越频繁。我以为它被攻击了。限制访问 IP 的阈值后,效果不明显,限制 CDN 业务中几个主要 IP 的效果仍然不明显。这时,岳明意识到它受到了恶意扫描的攻击。

防止SQL注入和XSS攻击的Nginx实用配置方法

通过分析服务器 waf 的日志记录,得出这些攻击基本上都是 SQL 注入和 XSS 攻击,都是绕过 CDN 缓存规则,直接返回源请求,导致 PHP 和 MySQL 操作请求越来越多。这就是服务器负载飙升的原因。在日志中可以看到,几乎所有的请求都是 GET/POST 的形式。虽然 WAF(Share WAF:http://www.sharewaf.com/)被完美识别和拦截,但由于在 Nginx 层面采取的措施,仍然会对服务器负载施加一定的压力,所以在 Nginx 中加入了防止 SQL 注入和 XSS 攻击的配置,但效果出奇的好。

将以下 Nginx 配置文件代码放入。配置相应站点的配置文件[服务器],然后重启 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}(=|\%3D)") { 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 的拦截和屏蔽,目前站点都已经恢复正常,服务器负载也是正常范围。

温馨提示: (本资源会持续更新),若下载链接失效,请在下方 (留言)(私信)站长处理!
收藏 (0)

微信扫一扫

支付宝扫一扫

点赞 (0)

免责声明

本资源仅限个人学习与研究使用,严禁用于任何商业用途!

1 网站名称:汇站网
2 永久网址:https://www.huizhanii.com
3 本站资源来源于网友投稿和付费购买,仅供编程人员及源代码爱好者下载参考与研究,不提供任何技术支持服务!
4 资源展示图片及相关信息仅供参考,不代表本站立场!本站仅作为信息存储平台
5 禁止在服务器和虚拟机上搭建运营,所有资源仅限本地调试与研究使用,不支持联网运行!
6 未经版权方授权,严禁用于商业用途。使用者如违反国家法律法规,需自行承担全部法律责任!
7 请在下载后24小时内删除!建议支持正版授权作品
8 如资源侵犯您的合法权益,请提供版权证明及相关作品信息发送至邮箱:972908224@qq.com,我们将及时处理
9 如遇下载链接失效或支付未到账,请联系站长处理
10 欢迎投稿优质源码或教程,审核通过后将获得相应奖励
11 资源收费仅用于维持网站正常运营
12 数字商品具有特殊性质,一经购买概不退款

汇站网 WordPress教程 防止SQL注入和XSS攻击的Nginx实用配置方法 https://www.huizhanii.com/20983.html

站长资源下载中心-找源码上汇站

常见问题
  • 如果付款后没有弹出下载页面,多刷新几下,有问题联系客服!
查看详情
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情

相关文章

联系官方客服

为您解决烦忧 - 24小时在线 专业服务