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设置日志打印post请求参数的方法
Mar 31 Servers
利用Nginx代理如何解决前端跨域问题详析
Apr 02 Servers
Nginx下SSL证书安装部署步骤介绍
Dec 06 Servers
深入解析Apache Hudi内核文件标记机制
Mar 31 Servers
从零开始在Centos7上部署SpringBoot项目
Apr 07 Servers
阿里云 Windows server 2019 配置FTP
Apr 28 Servers
详解如何使用Nginx解决跨域问题
May 06 Servers
Nginx 匹配方式
May 15 Servers
Win Server2016远程桌面如何允许多用户同时登录
Jun 10 Servers
Nginx文件已经存在全局反向代理问题排查记录
Jul 15 Servers
源码安装apache脚本部署过程详解
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读取PDF内容配合Xpdf的使用
2012/11/24 PHP
PHP命名空间(Namespace)的使用详解
2013/05/04 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
php实现MySQL数据库备份与还原类实例
2014/12/09 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
2016/11/14 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
javascript显示系统当前时间代码
2016/12/29 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
用Python进行基础的函数式编程的教程
2015/03/31 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
python for 循环获取index索引的方法
2019/02/01 Python
详解python算法之冒泡排序
2019/03/05 Python
python中的错误如何查看
2020/07/08 Python
Python 合并拼接字符串的方法
2020/07/28 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
附答案的Java面试题
2012/11/19 面试题
2013年大学生的自我鉴定
2013/10/24 职场文书
大学三年的自我评价
2013/12/25 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
文明礼仪伴我行演讲稿
2014/05/12 职场文书
导师工作推荐信范文
2014/05/17 职场文书
关于远足的感想
2015/08/10 职场文书
js实现上传图片到服务器
2021/04/11 Javascript