php突破ua限制,php cul突破防爬虫,服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站...

news/2024/5/15 3:04:14/文章来源:https://blog.csdn.net/weixin_36040020/article/details/116514808

我们都知道网络上的爬虫非常多,有对网站收录有益的,比如百度蜘蛛(Baiduspider),也有不但不遵守robots规则对服务器造成压力,还不能为网站带来流量的无用爬虫,比如宜搜蜘蛛(YisouSpider)(最新补充:宜搜蜘蛛已被UC神马搜索收购!所以本文已去掉宜搜蜘蛛的禁封!==>相关文章)。最近张戈发现nginx日志中出现了好多宜搜等垃圾的抓取记录,于是整理收集了网络上各种禁止垃圾蜘蛛爬站的方法,在给自己网做设置的同时,也给各位站长提供参考。

一、Apache

①、通过修改 .htaccess文件

修改网站目录下的.htaccess,添加如下代码即可(2种代码任选):

可用代码 (1):

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} (^$|FeedDemon|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms) [NC]

RewriteRule ^(.*)$ – [F]

可用代码 (2):

SetEnvIfNoCase ^User-Agent$ .*(FeedDemon|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms) BADBOT

Order Allow,Deny

Allow from all

Deny from env=BADBOT

②、通过修改httpd.conf配置文件

找到如下类似位置,根据以下代码 新增 / 修改,然后重启Apache即可:

DocumentRoot /home/wwwroot/xxx

SetEnvIfNoCase User-Agent “.*(FeedDemon|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms)” BADBOT

Order allow,deny

Allow from all

deny from env=BADBOT

二、Nginx代码

进入到nginx安装目录下的conf目录,将如下代码保存为 agent_deny.conf

cd /usr/local/nginx/conf

vim agent_deny.conf

#禁止Scrapy等工具的抓取

if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {

return 403;

}

#禁止指定UA及UA为空的访问

if ($http_user_agent ~* “FeedDemon|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$” ) {

return 403;

}

#禁止非GET|HEAD|POST方式的抓取

if ($request_method !~ ^(GET|HEAD|POST)$) {

return 403;

}

然后,在网站相关配置中的  location / {  之后插入如下代码:

include agent_deny.conf;

如张戈博客的配置:

[[email protected]_Server ~]$ cat /usr/local/nginx/conf/zhangge.conf

location / {

try_files $uri $uri/ /index.php?$args;

#这个位置新增1行:

include agent_deny.conf;

rewrite ^/sitemap_360_sp.txt$ /sitemap_360_sp.php last;

rewrite ^/sitemap_baidu_sp.xml$ /sitemap_baidu_sp.php last;

rewrite ^/sitemap_m.xml$ /sitemap_m.php last;

保存后,执行如下命令,平滑重启nginx即可:

/usr/local/nginx/sbin/nginx -s reload

三、PHP代码

将如下方法放到贴到网站入口文件index.php中的第一个

可以看出,宜搜蜘蛛和UA为空的返回是403禁止访问标识,而百度蜘蛛则成功返回200,说明生效!

补充:第二天,查看nginx日志的效果截图:

①、UA信息为空的垃圾采集被拦截:

5c933339bb86ac96cdde663b00fa52d9.png

②、被禁止的UA被拦截:

175f17a82b42ffc891d6beb287d078e4.png

因此,对于垃圾蜘蛛的收集,我们可以通过分析网站的访问日志,找出一些没见过的的蜘蛛(spider)名称,经过查询无误之后,可以将其加入到前文代码的禁止列表当中,起到禁止抓取的作用。

五、附录:UA收集

下面是网络上常见的垃圾UA列表,仅供参考,同时也欢迎你来补充。

FeedDemon 内容采集

BOT/0.1 (BOT for JCE) sql注入

CrawlDaddy sql注入

Java 内容采集

Jullo 内容采集

Feedly 内容采集

UniversalFeedParser 内容采集

ApacheBench cc攻击器

Swiftbot 无用爬虫

YandexBot 无用爬虫

AhrefsBot 无用爬虫

YisouSpider 无用爬虫(已被UC神马搜索收购,此蜘蛛可以放开!)

MJ12bot 无用爬虫

ZmEu phpmyadmin 漏洞扫描

WinHttp 采集cc攻击

EasouSpider 无用爬虫

HttpClient tcp攻击

Microsoft URL Control 扫描

YYSpider 无用爬虫

jaunty wordpress爆破扫描器

oBot 无用爬虫

Python-urllib 内容采集

Indy Library 扫描

FlightDeckReports Bot 无用爬虫

Linguee Bot 无用爬虫

六、参考资料

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。导航:艺宵博客 » php cul突破防爬虫,服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_771678.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站加速新时代 阿里云CDN推出全站加速服务

为什么80%的码农都做不了架构师?>>> 中国网速仍处于中游 用户体验亟待提升 根据数据报道,截止今年6月份,中国的网民达到了7.51亿,超过全球平均水平4.6个百分点,中国网站的数量已经达到482万个,…

使用 docker 搭建lnmp网站平台安装博客

1.环境准备系统环境:rootubuntu:~$ cat /etc/issueUbuntu 16.04.3 LTS \n \lrootubuntu:~$ sudo uname --mx86_64 docker 环境:rootubuntu:~# docker versionClient:Version: 17.09.0-ceAPI version: 1.32Go version: go1.8.3Git commit: afdb6d4Built: …

用JS写一个网站树形菜单

先上效果图&#xff1a; 主体内容就是侧边展示的一二三级菜单&#xff0c;树形结构的。 前端页面布局内容&#xff0c;页面内容简单用ul li 来完成所有的罗列项。用先后顺序来区分一级二级三级&#xff1a; <body><b><img src"images/fold.gif">…

国内主流SNS网站之---数据分析整理

2008年国内互联网界给我感受最深的是&#xff1a;忽如一夜春雨&#xff0c;SNS网站纷纷涌了出来&#xff0c;前有校内&#xff0c;占座&#xff0c;中有海内、开心、一起、蚂蚁、豆瓣&#xff0c;后有5G&#xff0c;TW&#xff0c;国内SNS领域进入群雄割据阶段。 最近几个月&am…

SharePoint Online 创建门户网站系列之准备篇

前 言 门户是SharePoint自推出以来&#xff0c;就非常适合的一种站点类型&#xff0c;在Server版本中&#xff0c;发布站点的应用非常广泛。这里&#xff0c;我们以一个个简单的例子&#xff0c;然后以一个固定的项目Demo&#xff0c;为大家演示如何一步步在SharePoint Online中…

腾讯云服务器手动和自动安装WordPress网站程序

如果我们需要建站的话&#xff0c;对于基础个人网站、博客建站选择基础的1Mbps带宽配置的1GB内存的腾讯云服务器还是够用的&#xff0c;且如果我们需要用来建网站的话可以手工添加程序&#xff0c;以及有些面板&#xff0c;比如宝塔面板是自带CMS程序可以直接快速安装WordPress…

MVC5 网站开发之六 管理员 2、添加、删除、重置密码、修改密码、列表浏览

目录 奔跑吧&#xff0c;代码小哥&#xff01; MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 MVC5 网站开发之三 数据存储层功能实现 MVC5 网站开发之四 业务逻辑层的架构和基本功能 MVC5 网站开发之五 展示层架构 MVC5 网站开发之六 管理员 1、登录、验证和注销 MVC…

网站注册图形验证码

后台代码&#xff1a;package cn.itcast.shop.user.action;import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.p_w_picpath.BufferedImage; import java.util.Random;import javax.p_w_picpathio.ImageIO;…

深夜分享建站过程---我的启示录

2019独角兽企业重金招聘Python工程师标准>>> 每个人都有做网站的冲动&#xff0c;都想当管理员&#xff0c;拥有更高级的权限&#xff0c;但往往是在私下里与好友或在网上热火朝天、激情澎湃地讨论一番而很少付诸行动。梦想高远固然重要&#xff0c;但脚踏实地的筹划…

嵌入式学习网站

2019独角兽企业重金招聘Python工程师标准>>> 1. 微软嵌入专业技术社区 http://www.winbile.net/cms/ 2. Pocket PC Developer Network http://www.pocketpcdn.com/sections/evc.html 3. 嵌入式研发之家 http://www.itxxh.cn/ 4. Windows Mobile 应用开发 http:/…

python 登陆网站图片验证,用python登录带弱图片验证码的网站

上一篇介绍了使用python模拟登陆网站&#xff0c;但是登陆的网站都是直接输入账号及密码进行登陆&#xff0c;现在很多网站为了加强用户安全性和提高反爬虫机制都会有包括字符、图片、手机验证等等各式各样的验证码。图片验证码就是其中一种&#xff0c;而且识别难度越来越大&a…

linux服务器打包文件,linux系统怎么进行文件打包_网站服务器运行维护,linux,文件...

linux系统怎么打开终端_网站服务器运行维护linux系统打开终端的方法是&#xff1a;1、使用快捷键【ctrlaltt】打开终端&#xff0c;linux支持多终端&#xff0c;可以一次性打开多个终端&#xff1b;2、通过【search your computer】功能搜索terminal。打包(.tar):tar -cvf Pro.…

网站架构文章和MySQL在国际知名网站中的使用量

2008年4月18日&#xff0c;在Alexa安排的一次“Scaling MySQL -- Up or Out?” 的小组辩论中&#xff0c;MySQL、Sun、Flickr、Fotolog、Wkipedia、Facebook、YouTube等国际知名网站的DBA们&#xff0c;对其 网站MySQL数据库服务器、Web服务器、缓存服务器的数量&#xff0c;M…

html gif素材在哪儿找,不会GIF动图制作?不知道从哪里找动图素材?送你2个网站1个软件...

原标题&#xff1a;不会GIF动图制作&#xff1f;不知道从哪里找动图素材&#xff1f;送你2个网站1个软件现在我们再创作内容时&#xff0c;都喜欢加上gif动图&#xff0c;特别是搞笑领域用的更多&#xff0c;这样看上去互让整篇文章都有画面感&#xff0c;而我们想要制作动图应…

一个服务器可以装几个网站,ecs云服务器可以装几个网站

ecs云服务器可以装几个网站 内容精选换一换拥有多个网卡的弹性云服务器&#xff0c;如果每个网卡对应的子网中的DNS服务器地址配置不一致时&#xff0c;通过该弹性云服务器将无法访问公网网站或云中的内部域名。请确保虚拟私有云的多个子网中的DNS服务器地址配置一致。您可以通…

Html CSS Javascript实现星巴克网站的Demo-传统网页布局(一)

Html&#xff0c;Css&#xff0c;JavaScript实现星巴克网站的Demo-传统网页布局&#xff08;一&#xff09; 本文实现了星巴克网站的传统布局方法。 图片素材放在百度网盘 链接&#xff1a;https://pan.baidu.com/s/1kzjzY3NNlOEH1qWMgVEzZw 提取码&#xff1a;lpq1 现提供完整…

Html,Css,JavaScript实现星巴克网站的Demo-响应式布局(二)

响应式布局 响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验&#xff0c;而且随着大屏幕移动设备的普及&#xff0c;用“大势所趋”来形容也不为过。随着越来越多的设计师采用这个技术&#xff0c;我们不仅看到很多的创新&#xff0c;还看到了一些成形的模式…

网站建设公司浅谈比较好网站页面设计的需要哪些合理性?

怎样做出一个好的网站&#xff0c;让你做出网站很容易传递给客户正确的信息表达。通常建站的专业人员都清楚用户体验的重要性&#xff0c;所以大家在制作页面过程中下工夫。那么&#xff0c;如何布局合理的网站设计才能得到用户欣赏呢&#xff1f;根据搜客大伟在网站建设公司多…

大型网站架构演变和知识体系

之前也有一些介绍大型网站架构演变的文章&#xff0c;例如LiveJournal的、ebay的&#xff0c;都是非常值得参考的&#xff0c;不过感觉他们讲的更多的是每次演变的结果&#xff0c;而没有很详细的讲为什么需要做这样的演变&#xff0c;再加上近来感觉有不少同学都很难明白为什么…

几个主流网站系统的引用结构图

引用结构图描述了一个系统中各个部分的关联性&#xff1a;哪个文件与那个文件相关联、哪个系统是另一个系统的子系统。 在研究一个系统之前&#xff0c;最好先把它的引用结构图画出来&#xff0c;这将非常有用。Federico Cargnelutti为我们带来了几个主流网站系统的引用结构图…