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中break与last的区别详析
Mar 31 Servers
nginx对http请求处理的各个阶段详析
Mar 31 Servers
nginx location中多个if里面proxy_pass的方法
Mar 31 Servers
Nginx Rewrite使用场景及配置方法解析
Apr 01 Servers
nginx配置虚拟主机的详细步骤
Jul 21 Servers
Nginx location 和 proxy_pass路径配置问题小结
Sep 04 Servers
Nginx工作模式及代理配置的使用细节
Mar 21 Servers
Apache Hudi数据布局黑科技降低一半查询时间
Mar 31 Servers
Docker官方工具docker-registry案例演示
Apr 13 Servers
Windows Server 2019 域控制器安装图文教程
Apr 28 Servers
openEuler 搭建java开发环境的详细过程
Jun 10 Servers
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
PHP 生成的XML以FLASH获取为乱码终极解决
2009/08/07 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
jquery获取节点名称
2015/04/26 Javascript
JS实现的另类手风琴效果网页内容切换代码
2015/09/08 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
2016/12/26 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
基于js实现数组相邻元素上移下移
2020/05/19 Javascript
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
tensorflow 打印内存中的变量方法
2018/07/30 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
python3.6使用tkinter实现弹跳小球游戏
2019/05/09 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
PyTorch中的Variable变量详解
2020/01/07 Python
python numpy库linspace相同间隔采样的实现
2020/02/25 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
2014新年元旦活动策划方案
2014/02/18 职场文书
征用土地赔偿协议书
2014/09/26 职场文书
2014年教务工作总结
2014/12/03 职场文书
小学科学教学计划
2015/01/21 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
利用Java设置Word文本框中的文字旋转方向的实现方法
2021/06/28 Java/Android