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反向代理及负载均衡如何实现(基于linux)
Mar 31 Servers
NGINX 权限控制文件预览和下载的实现原理
Jan 18 Servers
Nginx工作模式及代理配置的使用细节
Mar 21 Servers
docker-compose部署Yapi的方法
Apr 08 Servers
nginx容器方式反向代理实战
Apr 18 Servers
Windows Server 2019 安装DHCP服务及相关配置
Apr 28 Servers
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
Apr 29 Servers
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
Apr 29 Servers
详解如何使用Nginx解决跨域问题
May 06 Servers
设置IIS Express并发数
Jul 07 Servers
Win10系统搭建ftp文件服务器详细教程
Aug 05 Servers
Elasticsearch6.2服务器升配后的bug(避坑指南)
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常用代码
2006/11/23 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
PHP实现二维数组去重功能示例
2017/01/12 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
2018/08/17 PHP
PHP实现文件上传操作和封装
2020/03/04 PHP
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
js浏览器html5表单验证
2016/10/17 Javascript
JS实现的相册图片左右滚动完整实例
2016/11/23 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
2017/04/07 jQuery
详谈js原型继承的一些问题
2017/09/06 Javascript
jQuery代码优化方法总结
2018/01/29 jQuery
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
python把转列表为集合的方法
2019/06/28 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
Python 中判断列表是否为空的方法
2019/11/24 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
2020/06/08 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
使用CSS3和Checkbox实现JQuery的一些效果
2015/08/03 HTML / CSS
美国折扣宠物药房:Total Pet Supply
2018/05/27 全球购物
英国玛莎百货新西兰:Marks & Spencer New Zealand
2019/07/21 全球购物
技术总监的工作职责
2013/11/13 职场文书
业务经理的岗位职责
2013/11/16 职场文书
我的动漫时代的创业计划书范文
2014/01/27 职场文书
《苏珊的帽子》教学反思
2014/04/07 职场文书
求职个人评价范文
2014/04/09 职场文书
总经理助理岗位职责
2015/01/31 职场文书
2015年乡镇人大工作总结
2015/04/22 职场文书
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
2022/08/05 Servers