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 相关文章推荐
Windows下用Nginx配置https服务器及反向代理的问题
Sep 25 Servers
Nginx防盗链与服务优化配置的全过程
Jan 18 Servers
Docker 镜像介绍以及commit相关操作
Apr 13 Servers
Ubuntu Server 安装Tomcat并配置systemctl
Apr 28 Servers
centos7安装mysql5.7经验记录
May 02 Servers
讨论nginx location 顺序问题
May 30 Servers
教你如何用cmd快速登录服务器
Jun 10 Servers
Ubuntu安装Mysql+启用远程连接的完整过程
Jun 21 Servers
Apache POI操作批量导入MySQL数据库
Jun 21 Servers
Linux中一对多配置日志服务器的详细步骤
Jul 23 Servers
Win10系统搭建ftp文件服务器详细教程
Aug 05 Servers
Nginx 502 bad gateway错误解决的九种方案及原因
Aug 14 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 mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
php mongodb操作类 带几个简单的例子
2016/08/25 PHP
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
jquery validate使用攻略 第四步
2010/07/01 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
javascript中强制执行toString()具体实现
2013/04/27 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
javascript中replace使用方法总结
2017/03/01 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
webpack+vue-cli项目中引入外部非模块格式js的方法
2018/09/28 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
vue自定义正在加载动画的例子
2019/11/14 Javascript
Angular之jwt令牌身份验证的实现
2020/02/14 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
[01:11]steam端dota2实名认证操作流程视频
2021/03/11 DOTA
python和pyqt实现360的CLable控件
2014/02/21 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
2017/07/13 Python
Python判断两个对象相等的原理
2017/12/12 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
2018/04/22 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
法国足球商店:Footcenter
2019/07/06 全球购物
常用UNIX 命令(Linux的常用命令)
2015/12/26 面试题
暑期社会实践感言
2014/02/25 职场文书
绩效管理实施方案
2014/03/19 职场文书
安全生产年活动总结
2014/08/29 职场文书
客房服务员岗位职责
2015/02/09 职场文书
2015年教师党员自我评价材料
2015/03/04 职场文书
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL