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常用命令放入shell脚本详解
Mar 31 Servers
Nginx配置之实现多台服务器负载均衡
Aug 02 Servers
Nginx+Tomcat负载均衡集群的实现示例
Oct 24 Servers
Linux安装apache服务器的配置过程
Nov 27 Servers
Nginx实现负载均衡的项目实践
Mar 18 Servers
Shell脚本一键安装Nginx服务自定义Nginx版本
Mar 20 Servers
idea下配置tomcat避坑详解
Apr 12 Servers
Mac电脑OS系统下安装Nginx的详细教程
Apr 14 Servers
Tomcat starup.bat 脚本实现开机自启动
Apr 20 Servers
使用Nginx的访问日志统计PV与UV
May 06 Servers
CentOS7 minimal 最小化安装网络设置过程
Dec 24 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
用户的详细注册和判断
2006/10/09 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
Bootstrap Modal遮罩弹出层(完整版)
2016/11/21 Javascript
js鼠标经过tab选项卡时实现切换延迟
2017/03/24 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
js实现盒子拖拽动画效果
2020/08/09 Javascript
[48:05]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VGJ.T vs VP
2018/03/31 DOTA
Python3遍历目录树实现方法
2015/05/22 Python
Python实现感知机(PLA)算法
2017/12/20 Python
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
Python实现对一个函数应用多个装饰器的方法示例
2018/02/09 Python
python之验证码生成(gvcode与captcha)
2019/01/02 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
2019/11/15 Python
python用什么编辑器进行项目开发
2020/06/17 Python
Python常用外部指令执行代码实例
2020/11/05 Python
Ariat官网:美国马靴和服装品牌
2019/12/16 全球购物
介绍一下Transact-SQL中SPACE函数的用法
2015/09/01 面试题
三个Unix的命令面试题
2015/04/12 面试题
网络工程师个人的自我评价范文
2013/10/01 职场文书
优秀医生事迹材料
2014/02/12 职场文书
《三亚落日》教学反思
2014/04/26 职场文书
英语分层教学实施方案
2014/06/15 职场文书
授权委托书(完整版)
2014/09/10 职场文书
2015年体育部工作总结
2015/04/02 职场文书
海底两万里读书笔记
2015/06/26 职场文书
董事长助理工作总结2015
2015/07/23 职场文书
java项目构建Gradle的使用教程
2022/03/24 Java/Android