nginx屏蔽网络爬虫YisouSpider
时间:2023年05月26日
/来源:网络
/编辑:佚名
Nginx如何禁止空UA和特定User Agent垃圾爬虫访问网站,网站目录以及特定类型的文件
宝塔面板搭建的网站查看网站日志时:我们会经常发现一些空UA采集,或者垃圾爬虫高频的访问,导致CPU消耗过高,其实通过User Agent的特征,我们可以禁止那些恶意的无效的访问,Nginx环境如何禁止特定爬行工具、空UA、特定UA访问我们的网站:
下面的四项都是nginx配置在server内
1、禁止指定UA及UA为空的访问
if ($http_user_agent ~ "FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$" ) {
return 403;
}
2、禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}
3、禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
return 403;
}
4、此方法最简单粗暴,直接网站 Nginx 配置文件里面server内添加以下的规则,针对服务器上经常被扫描的文件后缀,直接返回404,资源下载网站请根据情况调整规则
# 禁止访问指定文件
location ~ \.(zip|rar|sql|tar|gz|7z)$ {
return 404;
}
宝塔面板的Nginx环境,登录宝塔面板后台 - 网站 -网站设置 - 配置文件 里面,添加你需要的代码:
5、在网站根目录里建立robots.txt,添加如下内容
User-agent: YisouSpider
Disallow: /
6、禁止某个目录执行脚本
【单nginx下有效,如使用了nginx+apache组合,php交给apache处理,需要通过.htaccess进行限制】,添加到location ~ .php 之前
location ~* ^/(uploads|templets|data)/.*.(php|php5)$ {
return 444;
}
7、屏蔽某个IP或IP段
#屏蔽192.168.5.23这个IP
deny 192.168.5.23;
#屏蔽192.168.5.* 这个段
deny 192.168.5.0/24;
8、此种方法比较暴力,就是以彼之道,还施彼身,利用伪静态规则进行跳转下载,比如:扫描根目录下的 /web.rar,那么就会触发规则跳转到大文件下载地址。
打开网站 Nginx 配置文件,将规则加入 server 内,示例:
server {
...
# 专治扫描户
rewrite \.rar/?$ http://speedtest.tele2.net/100GB.zip permanent;
rewrite \.tar/?$ http://speedtest.tele2.net/100GB.zip permanent;
rewrite \.zip/?$ http://speedtest.tele2.net/100GB.zip permanent;
rewrite \.sql/?$ http://speedtest.tele2.net/100GB.zip permanent;
rewrite \.gz/?$ http://speedtest.tele2.net/100GB.zip permanent;
rewrite \.7z/?$ http://speedtest.tele2.net/100GB.zip permanent;
# 或者使用
rewrite \.(rar|zip|tar|sql|gz|7z)/?$ http://speedtest.tele2.net/100GB.zip permanent;
...
}
如果觉得 100GB 响应时间有点长,那么可以替换小文件下载地址:
10G:
新加坡: http://lg-sin.fdcservers.net/10GBtest.zip
日本: http://lg-tok.fdcservers.net/10GBtest.zip
香港: http://lg-hkg.fdcservers.net/10GBtest.zip
1G:
日本:http://hnd-jp-ping.vultr.com/vultr.com.1000MB.bin
新加坡:https://sgp-ping.vultr.com/vultr.com.1000MB.bin
如何测试效果?
Linux的vps,比如Centos7 使用Xshell软件连接上VPS。(如何使用Xshell通过SSH连接管理VPS)
使用使用下面的命令测试一下就行:
模拟UA为空的抓取:
curl -I -A '' https://www.78moban.com
模拟垃圾爬虫AhrefsBot抓取:
curl -I -A 'AhrefsBot' https://www.78moban.com
模拟AhrefsBot访问返回:HTTP/1.1 403 Forbidden 则设置生效访问被拦截!
模拟百度蜘蛛的抓取:
curl -I -A 'Baiduspider' https://www.78moban.com
模拟百度蜘蛛访问则成功返回:HTTP/1.1 200 OK
表示百度的爬虫是正常可以访问你的网站。
附一部分垃圾垃圾爬虫和扫描
FeedDemon 内容采集
BOT/0.1 sql注入
CrawlDaddy sql注入
Java 内容采集
Jullo 内容采集
Feedly 内容采集
UniversalFeedParser 内容采集
ApacheBench cc攻击器
Swiftbot 无用爬虫
YandexBot 无用爬虫
AhrefsBot 无用爬虫
YisouSpider 无用爬虫
jikeSpider 无用爬虫
MJ12bot 无用爬虫
ZmEu phpmyadmin 漏洞扫描
WinHttp 采集cc攻击
EasouSpider 无用爬虫
HttpClient tcp攻击
Microsoft URL Control 扫描
YYSpider 无用爬虫
jaunty wordpress爆破扫描器
oBot 无用爬虫
Python-urllib 内容采集
Indy Library 扫描
FlightDeckReports Bot 无用爬虫
Linguee Bot 无用爬虫
宝塔面板搭建的网站查看网站日志时:我们会经常发现一些空UA采集,或者垃圾爬虫高频的访问,导致CPU消耗过高,其实通过User Agent的特征,我们可以禁止那些恶意的无效的访问,Nginx环境如何禁止特定爬行工具、空UA、特定UA访问我们的网站:
下面的四项都是nginx配置在server内
1、禁止指定UA及UA为空的访问
if ($http_user_agent ~ "FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$" ) {
return 403;
}
2、禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}
3、禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
return 403;
}
4、此方法最简单粗暴,直接网站 Nginx 配置文件里面server内添加以下的规则,针对服务器上经常被扫描的文件后缀,直接返回404,资源下载网站请根据情况调整规则
# 禁止访问指定文件
location ~ \.(zip|rar|sql|tar|gz|7z)$ {
return 404;
}
宝塔面板的Nginx环境,登录宝塔面板后台 - 网站 -网站设置 - 配置文件 里面,添加你需要的代码:
5、在网站根目录里建立robots.txt,添加如下内容
User-agent: YisouSpider
Disallow: /
6、禁止某个目录执行脚本
【单nginx下有效,如使用了nginx+apache组合,php交给apache处理,需要通过.htaccess进行限制】,添加到location ~ .php 之前
location ~* ^/(uploads|templets|data)/.*.(php|php5)$ {
return 444;
}
7、屏蔽某个IP或IP段
#屏蔽192.168.5.23这个IP
deny 192.168.5.23;
#屏蔽192.168.5.* 这个段
deny 192.168.5.0/24;
8、此种方法比较暴力,就是以彼之道,还施彼身,利用伪静态规则进行跳转下载,比如:扫描根目录下的 /web.rar,那么就会触发规则跳转到大文件下载地址。
打开网站 Nginx 配置文件,将规则加入 server 内,示例:
server {
...
# 专治扫描户
rewrite \.rar/?$ http://speedtest.tele2.net/100GB.zip permanent;
rewrite \.tar/?$ http://speedtest.tele2.net/100GB.zip permanent;
rewrite \.zip/?$ http://speedtest.tele2.net/100GB.zip permanent;
rewrite \.sql/?$ http://speedtest.tele2.net/100GB.zip permanent;
rewrite \.gz/?$ http://speedtest.tele2.net/100GB.zip permanent;
rewrite \.7z/?$ http://speedtest.tele2.net/100GB.zip permanent;
# 或者使用
rewrite \.(rar|zip|tar|sql|gz|7z)/?$ http://speedtest.tele2.net/100GB.zip permanent;
...
}
如果觉得 100GB 响应时间有点长,那么可以替换小文件下载地址:
10G:
新加坡: http://lg-sin.fdcservers.net/10GBtest.zip
日本: http://lg-tok.fdcservers.net/10GBtest.zip
香港: http://lg-hkg.fdcservers.net/10GBtest.zip
1G:
日本:http://hnd-jp-ping.vultr.com/vultr.com.1000MB.bin
新加坡:https://sgp-ping.vultr.com/vultr.com.1000MB.bin
如何测试效果?
Linux的vps,比如Centos7 使用Xshell软件连接上VPS。(如何使用Xshell通过SSH连接管理VPS)
使用使用下面的命令测试一下就行:
模拟UA为空的抓取:
curl -I -A '' https://www.78moban.com
模拟垃圾爬虫AhrefsBot抓取:
curl -I -A 'AhrefsBot' https://www.78moban.com
模拟AhrefsBot访问返回:HTTP/1.1 403 Forbidden 则设置生效访问被拦截!
模拟百度蜘蛛的抓取:
curl -I -A 'Baiduspider' https://www.78moban.com
模拟百度蜘蛛访问则成功返回:HTTP/1.1 200 OK
表示百度的爬虫是正常可以访问你的网站。
附一部分垃圾垃圾爬虫和扫描
FeedDemon 内容采集
BOT/0.1 sql注入
CrawlDaddy sql注入
Java 内容采集
Jullo 内容采集
Feedly 内容采集
UniversalFeedParser 内容采集
ApacheBench cc攻击器
Swiftbot 无用爬虫
YandexBot 无用爬虫
AhrefsBot 无用爬虫
YisouSpider 无用爬虫
jikeSpider 无用爬虫
MJ12bot 无用爬虫
ZmEu phpmyadmin 漏洞扫描
WinHttp 采集cc攻击
EasouSpider 无用爬虫
HttpClient tcp攻击
Microsoft URL Control 扫描
YYSpider 无用爬虫
jaunty wordpress爆破扫描器
oBot 无用爬虫
Python-urllib 内容采集
Indy Library 扫描
FlightDeckReports Bot 无用爬虫
Linguee Bot 无用爬虫
新闻资讯 更多
- 【建站知识】查询nginx日志状态码大于400的请求并打印整行04-03
- 【建站知识】Python中的logger和handler到底是个什么?04-03
- 【建站知识】python3拉勾网爬虫之(您操作太频繁,请稍后访问)04-03
- 【建站知识】xpath 获取meta里的keywords及description的方法04-03
- 【建站知识】python向上取整以50为界04-03
- 【建站知识】scrapy xpath遇见乱码解决04-03
- 【建站知识】scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题04-03
- 【建站知识】scrapy采集—爬取中文乱码,gb2312转为utf-804-03