Nginx反爬虫策略,防止UA抓取网站


Posted in Servers onMarch 31, 2021

新增反爬虫策略文件:

vim /usr/www/server/nginx/conf/anti_spider.conf

文件内容

#禁止Scrapy等工具的抓取 
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { 
   return 403; 
} 
#禁止指定UA及UA为空的访问 
if ($http_user_agent ~ "WinHttp|WebZIP|FetchURL|node-superagent|java/|FeedDemon|Jullo|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|Java|Feedly|Apache-HttpAsyncClient|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|BOT/0.1|YandexBot|FlightDeckReports|Linguee Bot|^$" ) { 
   return 403;        
} 
#禁止非GET|HEAD|POST方式的抓取 
if ($request_method !~ ^(GET|HEAD|POST)$) { 
  return 403; 
}
#屏蔽单个IP的命令是
#deny 123.45.6.7
#封整个段即从123.0.0.1到123.255.255.254的命令
#deny 123.0.0.0/8
#封IP段即从123.45.0.1到123.45.255.254的命令
#deny 124.45.0.0/16
#封IP段即从123.45.6.1到123.45.6.254的命令是
#deny 123.45.6.0/24
# 以下IP皆为流氓
#deny 58.95.66.0/24;

配置使用

在站点的server中引入

# 反爬虫  
include /usr/www/server/nginx/conf/anti_spider.conf

最后重启nginx

校验是否有效

模拟YYSpider

λ curl -X GET -I -A 'YYSpider' https://www.myong.top
HTTP/1.1 200 Connection established
HTTP/2 403
server: marco/2.11
date: Fri, 20 Mar 2020 08:48:50 GMT
content-type: text/html
content-length: 146
x-source: C/403
x-request-id: 3ed800d296a12ebcddc4d61c57500aa2

模拟百度Baiduspider

λ curl -X GET -I -A 'BaiduSpider' https://www.myong.top
HTTP/1.1 200 Connection established
HTTP/2 200
server: marco/2.11
date: Fri, 20 Mar 2020 08:49:47 GMT
content-type: text/html
vary: Accept-Encoding
x-source: C/200
last-modified: Wed, 18 Mar 2020 13:16:50 GMT
etag: "5e721f42-150ce"
x-request-id: e82999a78b7d7ea2e9ff18b6f1f4cc84

爬虫常见的User-Agent

FeedDemon       内容采集 
BOT/0.1 (BOT for JCE) sql注入 
CrawlDaddy      sql注入 
Java         内容采集 
Jullo         内容采集 
Feedly        内容采集 
UniversalFeedParser  内容采集 
ApacheBench      cc攻击器 
Swiftbot       无用爬虫 
YandexBot       无用爬虫 
AhrefsBot       无用爬虫 
YisouSpider      无用爬虫(已被UC神马搜索收购,此蜘蛛可以放开!) 
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反爬虫策略,防止UA抓取网站的详细内容,更多关于Nginx 反爬虫的资料请关注三水点靠木其它相关文章!

Servers 相关文章推荐
nginx对http请求处理的各个阶段详析
Mar 31 Servers
fastdfs+nginx集群搭建的实现
Mar 31 Servers
Nginx配置Https安全认证的实现
May 26 Servers
nginx配置虚拟主机的详细步骤
Jul 21 Servers
图文详解nginx日志切割的实现
Jan 18 Servers
Windows server 2012 配置Telnet以及用法详解
Apr 28 Servers
Windows server 2012搭建FTP服务器
Apr 29 Servers
Zabbix对Kafka topic积压数据监控的解决方案
Jul 07 Servers
Docker安装MySql8并远程访问的实现
Jul 07 Servers
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
Jul 15 Servers
nginx访问报403错误的几种情况详解
Jul 23 Servers
Apache SkyWalking 监控 MySQL Server 实战解析
Sep 23 Servers
Mac环境Nginx配置和访问本地静态资源的实现
Mar 31 #Servers
Nginx域名转发使用场景代码实例
Mar 31 #Servers
提升Nginx性能的一些建议
Nginx反向代理及负载均衡如何实现(基于linux)
Mar 31 #Servers
Nginx配置80端口访问8080及项目名地址方法解析
Mar 31 #Servers
Nginx配置https原理及实现过程详解
Mar 31 #Servers
如何在centos上使用yum安装rabbitmq-server
Mar 31 #Servers
You might like
用PHP为SHOPEX增加日志功能代码
2010/07/02 PHP
php输出xml格式字符串(用的这个)
2012/07/12 PHP
php并发对MYSQL造成压力的解决方法
2013/02/21 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
2013/06/05 PHP
解析PHP中intval()等int转换时的意外异常情况
2013/06/21 PHP
Linux下PHP连接Oracle数据库
2014/08/20 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
2014/12/16 Javascript
javascript数字验证的实例代码(推荐)
2016/08/20 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
Python与shell的3种交互方式介绍
2015/04/11 Python
Python字符串转换成浮点数函数分享
2015/07/24 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
python中数组和矩阵乘法及使用总结(推荐)
2019/05/18 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
亚马逊印度站:Amazon.in
2017/10/15 全球购物
马来西亚最热门的在线时尚商店:FashionValet
2018/11/11 全球购物
strlen的几种不同实现方法
2013/05/31 面试题
使用索引(Index)有哪些需要考虑的因素
2016/10/19 面试题
医大实习自我鉴定
2013/12/07 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
2015年小学校长工作总结
2015/05/19 职场文书
Python面向对象之内置函数相关知识总结
2021/06/24 Python
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS
在CSS中使用when/else的方法
2022/01/18 HTML / CSS
win10电脑双屏显示一个黑屏怎么办?win10电脑双屏显示一个黑屏解决方法
2022/07/15 数码科技