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 + consul + upsync 完成动态负载均衡的方法详解
Mar 31 Servers
如何在centos上使用yum安装rabbitmq-server
Mar 31 Servers
Nginx Rewrite使用场景及配置方法解析
Apr 01 Servers
详解Nginx启动失败的几种错误处理
Apr 01 Servers
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
Jul 07 Servers
Nginx location 和 proxy_pass路径配置问题小结
Sep 04 Servers
nginx搭建NFS网络文件系统
Apr 14 Servers
Tomcat starup.bat 脚本实现开机自启动
Apr 20 Servers
nginx日志格式分析和修改
Apr 28 Servers
阿里云服务器Ubuntu 20.04上安装Odoo 15
May 20 Servers
Linux磁盘管理方法介绍
Jun 01 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
请离开include_once和require_once
2013/07/18 PHP
如何在php中正确的使用json
2013/08/06 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
JavaScript词法作用域与调用对象深入理解
2012/11/29 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
详解Document.Cookie
2015/12/25 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
2018/06/11 Python
Python实现基于POS算法的区块链
2018/08/07 Python
python中的json总结
2018/10/11 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
python 调用有道api接口的方法
2019/01/03 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
Python PIL图片添加字体的例子
2019/08/22 Python
Python生成器next方法和send方法区别详解
2020/05/30 Python
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
Python中的面向接口编程示例详解
2021/01/17 Python
pytorch 中forward 的用法与解释说明
2021/02/26 Python
荷兰皇家航空公司官方网站:KLM Royal Dutch Airlines
2017/12/07 全球购物
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
Hobbs官方网站:英国奢华女性时尚服装
2020/02/22 全球购物
建筑人员岗位职责
2013/12/25 职场文书
护士试用期自我鉴定
2014/02/08 职场文书
买卖合同协议书范本
2014/10/18 职场文书
2015年教师见习期工作总结
2015/05/20 职场文书
2015年工会工作总结范文
2015/07/23 职场文书
《云雀的心愿》教学反思
2016/02/23 职场文书
门面租赁合同范文
2019/08/06 职场文书