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 设置多个站跨域
Mar 09 Servers
使用nginx动态转换图片大小生成缩略图
Mar 31 Servers
nginx proxy_cache 缓存配置详解
Mar 31 Servers
详解Nginx 工作原理
Mar 31 Servers
利用Nginx代理如何解决前端跨域问题详析
Apr 02 Servers
教你快速开启Apache SkyWalking的自监控
Apr 25 Servers
uwsgi+nginx代理Django无法访问静态资源的解决
May 10 Servers
nginx刷新页面出现404解决方案(亲测有效)
Mar 18 Servers
CentOS下安装Jenkins的完整步骤
Apr 07 Servers
nginx日志格式分析和修改
Apr 28 Servers
netty 实现tomcat的示例代码
Jun 05 Servers
Nginx跨域问题解析与解决
Aug 05 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根据ip查询所在地区(非常有用,赶集网就用到)
2013/07/01 PHP
php版银联支付接口开发简明教程
2016/10/14 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
js实现鼠标滑过文字链接色彩变化的效果
2015/05/06 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
2015/11/02 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
基于jQuery ligerUI实现分页样式
2016/09/18 Javascript
javascript显示系统当前时间代码
2016/12/29 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
JavaScript判断数组类型的方法
2019/10/23 Javascript
Vue v-bind动态绑定class实例方法
2020/01/15 Javascript
如何使用 vue-cli 创建模板项目
2020/11/19 Vue.js
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
Python实现从url中提取域名的几种方法
2014/09/26 Python
python脚本替换指定行实现步骤
2017/07/11 Python
Python实现检测文件MD5值的方法示例
2018/04/11 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
django写用户登录判定并跳转制定页面的实例
2019/08/21 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
浅析HTML5中header标签的用法
2016/06/24 HTML / CSS
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
网上商城创业计划书范文
2014/01/31 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
用CSS3画一个爱心
2021/04/27 HTML / CSS