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 tp3.2.3 404问题解决方案
Mar 31 Servers
Nginx配置并兼容HTTP实现代码解析
Mar 31 Servers
如何利用map实现Nginx允许多个域名跨域
Mar 31 Servers
详解Nginx启动失败的几种错误处理
Apr 01 Servers
apache基于端口创建虚拟主机的示例
Apr 22 Servers
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
Feb 12 Servers
nginx配置之并发频次限制
Apr 18 Servers
永中文档在线转换预览基于nginx配置部署方案
Jun 10 Servers
Windows Server 修改远程桌面端口的实现
Jun 25 Servers
Apache自带的ab压力测试工具的实现
Jul 23 Servers
WIN10使用IIS部署ftp服务器详细教程
Aug 05 Servers
CentOS7设置ssh服务以及端口修改方式
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
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
javascript之更有效率的字符串替换
2008/08/02 Javascript
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
jQuery中:first选择器用法实例
2014/12/30 Javascript
深入探寻javascript定时器
2015/01/02 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
2016/10/25 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
2018/02/22 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
vue实现2048小游戏功能思路详解
2018/05/09 Javascript
浅谈js中的bind
2019/03/18 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
浅谈js中的attributes和Attribute的用法与区别
2020/07/16 Javascript
vue实现给div绑定keyup的enter事件
2020/07/31 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
python基础教程之Filter使用方法
2017/01/17 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
2019/02/19 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
2019/07/04 Python
pytorch forward两个参数实例
2020/01/17 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
Django视图类型总结
2021/02/17 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
浅谈css3中的前缀
2016/07/20 HTML / CSS
泰国在线书店:SE-ED
2020/06/21 全球购物
仓管员岗位职责范文
2013/11/08 职场文书
学生会招新策划书
2014/02/14 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
采购意向书范本
2014/03/31 职场文书
化工厂员工工作总结
2015/10/15 职场文书