Nginx攻击防护、CC防护、防止SQL注入、防XSS的实践配置方法

  • 防止SQL注入、XSS攻击
  • Nginx安全防护屏蔽那些恶意的IP和垃圾蜘蛛
  • nginx网站攻击防护
  • Nginx简单防御CC攻击

资源宝分享:www.httple.net

感觉对你有用关注一下吧

一、防止文件被下载
比如将网站数据库导出到站点根目录进行备份,很有可能也会被别人下载,从而导致数据丢失的风险。以下规则可以防止一些常规的文件被下载,可根据实际情况增减。

location ~ \.(zip|rar|sql|bak|gz|7z)$ {  return 444;
}

二、屏蔽非常见蜘蛛(爬虫)
如果经常分析网站日志你会发现,一些奇怪的 UA 总是频繁的来访问网站,而这些 UA 对网站收录毫无意义,反而增加服务器压力,可以直接将其屏蔽。

if ($http_user_agent ~* (SemrushBot|python|MJ12bot|AhrefsBot|AhrefsBot|hubspot|opensiteexplorer|leiki|webmeup)) { return 444;
}

三、禁止某个目录执行脚本
比如网站上传目录,通常存放的都是静态文件,如果因程序验证不严谨被上传木马程序,导致网站被黑。以下规则请根据自身情况改为您自己的目录,需要禁止的脚本后缀也可以自行添加。

#uploads|templets|data 这些目录禁止执行 <a href="https://www.httple.net/" title="更多关于 PHP 的文章" target="_blank">PHP</a>
location ~* ^/(uploads|templets|data)/.*.(php|php5)$ { return 444;
}

四、屏蔽某个 IP 或 IP 段
如果网站被恶意灌水或 CC 攻击,可从网站日志中分析特征 IP,将其 IP 或 IP 段进行屏蔽。

#屏蔽 192.168.5.23 这个 IP
deny 192.168.5.23;
#屏蔽 192.168.5.* 这个段
denu 192.168.5.0/24;

上面规则报道查看 444 状态码而不是 403,
因为 444 状态码在 nginx 的中有特殊含义,nginx 的 444 状态是直接由服务器中断连接,不会向客户端再返回任何消息。
比返回 403 更加暴力

防止SQL注入、XSS攻击

将下面的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}(=|\%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或者类似压力测试工具,其他工具只需要更换名称即可。

Nginx安全防护屏蔽那些恶意的IP和垃圾蜘蛛

机器人自动扫描漏洞的~可真烦人!

我这个只合适 nginx.Apache 自己修改!

#屏蔽蜘蛛
https://jacdn.kieng.cn/webfile/deny-bots.conf#屏蔽 IP
https://jacdn.kieng.cn/webfile/deny-ips.conf#屏蔽 IP 精华版
https://jacdn.kieng.cn/webfile/deny-ip-acc.conf

用法:
下载上面的文件到你的nginx目录
server块中添加include 目录*/deny-bots.conf*;(如果是跟 nginx 配置文件放在了一个目录那直接 include deny-bots.conf

Nginx攻击防护、CC防护、防止SQL注入、防XSS的实践配置方法相关推荐

  1. Nginx 防止SQL注入、XSS攻击的实践配置方法

    下班的时候,发现博客访问缓慢,甚至出现504错误,通过 top -i 命令查看服务器负载发现负载数值飙升到3.2之多了,并且持续时间越来越频繁直至持续升高的趋势,还以为是被攻击了,对来访IP进行了阈值 ...

  2. WAF——针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入、XSS跨站、Webshell上传、命令注入、非法HTTP协议请求、非授权文件访问等...

    核心概念 WAF Web应用防火墙(Web Application Firewall),简称WAF. Web攻击 针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入.XSS跨站.Websh ...

  3. [网络安全提高篇] 一〇四.网络渗透靶场Oracle+phpStudy本地搭建万字详解(SQL注入、XSS攻击、文件上传漏洞)

    当您阅读到该篇文章时,作者已经将"网络安全自学篇"设置成了收费专栏,首先说声抱歉.感谢这一年来大家的阅读和陪伴,这100篇安全文章记录了自己从菜鸡到菜鸟的成长史,该部分知识也花了很 ...

  4. 防止SQL注入和XSS攻击Filter

    nbsp;今天系统使用IBM的安全漏洞扫描工具扫描出一堆漏洞,下面的filter主要是解决防止SQL注入和XSS攻击 一个是Filter负责将请求的request包装一下. 一个是request包装器 ...

  5. 企业级解决SQL注入、XSS攻击解决案例

    SQL注入和XSS攻击实际上的原理都是通过拼接从而完成攻击,通过简单的黑名单或编码在有些时候并不能完全防御以上两种问题.本文中使用OWASP的owasp-java-html-sanitizer组件,通 ...

  6. 浅谈SQL注入,XSS攻击

    作为计算机小白,一直都认为黑客很牛逼所以简单的了解一下这反面的知识--信息安全 黑客是个英译词,译作Hacker.黑客攻击或者黑计算机的方式多种多样,主要分为两种: (1)非破坏性的攻击:一般是为了扰 ...

  7. 常见的Web攻击方式:SQL注入、XSS跨站脚本攻击、CSRF跨站点请求伪造

    常见的Web攻击有SQL注入.XSS跨站脚本攻击.跨站点请求伪造共三类,下面分别简单介绍. 1 SQL注入 1.1 原理 SQL注入就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字 ...

  8. OWASP TOP 10(2021)之注入漏洞(SQL注入和XSS注入)

    目录 一.SQL注入 1. 漏洞概述及原理 2. 漏洞可能造成的危害 3. 漏洞防范 4. SQL注入的分类与检测 5. 从攻击者的角度,如何绕过SQL注入防范呢? (1)对于关键字的绕过 (2)缓冲 ...

  9. php登录框注入,分享一个php的防火墙,拦截SQL注入和xss

    这个是一个一个基于php的防火墙程序,拦截sql注入和xss攻击,无需服务器支持 安装 composer require xielei/waf 使用说明 $waf = new \Xielei\Waf\ ...

最新文章

  1. Linux编程题:信号量同步三进程依次打印若干次ABC
  2. 一个页面中多个window.onload = function(){}冲突问题解决思路
  3. arm linux rsync文件同步
  4. sqoop从mysql到hive问题
  5. 树莓派Raspbian Buster/Debian 10 安装ROS
  6. 中移物联网答案java_【分享】中移物联网校园招聘笔试-java
  7. python可以用eclipse开发吗_Eclipse不是主要用来写Java么?Python也可以在eclipse上面写?Eclipse搭建Python开发环境...
  8. 控制鼠标滚动,滚动指定的距离
  9. JS调用WebService
  10. 项目IDEA启动配置
  11. 利用maven的resources、filter和profile实现不同环境使用不同配置文件
  12. 【计算机基础】防火墙
  13. 百度地图---之---行政区域划分
  14. PS照片排版1寸2寸等及照片规格
  15. 输入任意字符,若是小写则变为大写字母,否则原样输出
  16. win10计算机窗口览,Win10窗口预览管理工具
  17. python制作有道翻译软件
  18. @JsonFormat将时间字符串2021-02-25T15:32:54+08:00解析成date
  19. FreeBSD10 安装
  20. 简约大气仿小米社区网站风格的WP主题模板

热门文章

  1. virtualbox虚拟机镜像迁移到qemu
  2. 帝国cms百度小程序源码下载
  3. Linux下实现Mac下QuickSilver那样的一键切换程序(代替Alt-Tab键)
  4. hive详解(分区分桶)
  5. Alist+RaiDrive挂载天翼云盘、阿里云盘
  6. 享元模式——对象共享,避免创建多对象
  7. visio导出pdf图片存在多余白边和边框
  8. arm 使用bluetoothctl连接蓝牙耳机
  9. 计算机怎样记住用户名和密码,电脑浏览器怎么记住登录密码 电脑浏览器记住登录密码方法【详解】...
  10. 使用SkinMagic实现换肤