php 禁止抓取,服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站

news/2024/5/20 4:15:08/文章来源:https://blog.csdn.net/weixin_39907939/article/details/115172678

一、Apache

①、通过修改 .htaccess 文件

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

可用代码 (1):

RewriteEngineOn

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

OrderAllow,Deny

Allow fromall

Deny fromenv=BADBOT

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

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

Shell

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

Orderallow,deny

Allow fromall

deny fromenv=BADBOT

be12f19f4904c3614b2eb97d661a99b9.png

二、Nginx 代码

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

cd /usr/local/nginx/conf

vim agent_deny.conf

#禁止Scrapy等工具的抓取

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

return403;

}

#禁止指定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|^$” ) {

return403;

}

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

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

return403;

}

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

Shell

include agent_deny.conf;

如下的配置:

Shell

[marsge@Mars_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 即可:

Shell

/usr/local/nginx/sbin/nginx –s reload

三、PHP 代码

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

PHP

//获取UA信息

$ua = $_SERVER[‘HTTP_USER_AGENT’];

//将恶意USER_AGENT存入数组

$now_ua = array(‘FeedDemon ‘,‘BOT/0.1 (BOT forJCE)’,‘CrawlDaddy ‘,‘Java’,‘Feedly’,‘UniversalFeedParser’,‘ApacheBench’,‘Swiftbot’,‘ZmEu’,‘Indy Library’,‘oBot’,‘jaunty’,‘YandexBot’,‘AhrefsBot’,‘MJ12bot’,‘WinHttp’,‘EasouSpider’,‘HttpClient’,‘Microsoft URL Control’,‘YYSpider’,‘jaunty’,‘Python-urllib’,‘lightDeckReports Bot’);

//禁止空USER_AGENT,dedecms等主流采集程序都是空USER_AGENT,部分sql注入工具也是空USER_AGENT

if(!$ua) {

header(“Content-type: text/html; charset=utf-8”);

die(‘请勿采集本站,因为采集的站长木有小JJ!’);

}else{

foreach($now_ua as$value )

//判断是否是数组中存在的UA

if(eregi($value,$ua)) {

header(“Content-type: text/html; charset=utf-8”);

die(‘请勿采集本站,因为采集的站长木有小JJ!’);

}

}

四、测试效果

如果是 vps,那非常简单,使用 curl -A 模拟抓取即可,比如:

模拟宜搜蜘蛛抓取:

Shell

curl –I –A ‘YisouSpider’ bizhi.bcoderss.com

模拟 UA 为空的抓取:

Shell

curl –I –A ” bizhi.bcoderss.com

模拟百度蜘蛛的抓取:

Shell

curl –I –A ‘Baiduspider’ bizhi.bcoderss.com

【编辑推荐】

【责任编辑:武晓燕 TEL:(010)68476606】

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

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

相关文章

java天气获取网站_java扒取天气网站的数据

1:由于天气apk接口不稳定所以经常获取不到信息。于是就动手写一个扒取天气网站上的数据然后做成json,apk直接调用服务器上扒取的数据增加稳定性。2:项目主要是用servlet然后正则表达式来提取网站信息。3:我觉得比较难得地方就是如何写正确的正则来提取出…

使用Varnish为web网站加速

使用Varnish为网站加速varnish概述 Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸Verdens Gang (http://www.vg.no) 使用3台Varnish代替了原来的12台squid,性能居然比以前更好。Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一&am…

iis网站域名绑定

这里解释两种绑定 一、全局ip未分配 二、绑定指定域名 1、添加主机名 注释:没有绑定主机名的进站默认就会被访问。绑定主机名的进站访问特定主机名的网站。转载于:https://www.cnblogs.com/zz-930474270/p/4569358.html

谈谈网站防盗链

引子:明明引用了一个正确的图片地址,但显示出来的却是一个红叉或写有“此图片仅限于***网站用户交流沟通使用”之类的“假图片”(下图便是网易博客的防盗链效果)。用嗅探软件找到了多媒体资源的真实地址用下载软件仍然不能下载。下…

从服务器检索时出错dfdferh01_服务器空间的稳定性对seo优化非常重要—竹晨网络...

网站降权是指搜索引擎对网站评定的级别下降,是搜索引擎对网站进行的一种处罚方式。通常多为网站自身作弊导致的,改正错误一段时间后会自行恢复。特征一:关键词排名大幅度下降特征二:网站收录量减少特征三:搜索引擎快照…

对公司网站DNS解析异常的排查与处理

这周可谓是屋漏连夜雨,先是nfs挂载出现问题,紧接着住处的厕所堵了,然后又是今天的域名解析异常导致服务访问返回404。我们的域名是解析到两个IP,分别是电信跟网通。异常情景:用户打开页面登录后图片上传跟显示出现异常…

php多站点建站,wordpress多站点子目录多域名建站 管理开启方法

最近打算折腾一个主题演示站,给每个主题使用独立的子站点来搭建演示,如果是Apache环境,配置就比较容易,但是倡萌使用的是 Nginx,花了大量的时间测试了N多网络上的伪静态规则,最终找到了完美的解决方法。下面…

如何查看任何一下网站的全部二级域名?

快速教会你查看任何一个网站的全部二级域名。请看我的讲解吧! 方法/步骤 1方法其实很简单。首先,我们随便找一个搜索引擎。我以百度搜索引擎为例。 2我以腾讯QQ这个网站为例。我们在搜索框内输入site:*qq.com这下我们就可以搜索到这个网站所有二级域名以…

linux系统 网站木马后门Webshell查杀工具源码

后门这东西好让人头疼,第一文件太多了,不容易找,第二,难找,需要特征匹配啊。搞了一个python版查杀php webshell后门工具,大家可以增加后门的特征码,然后甩到后台给他查杀就可以了。适合Linux系统…

SEO算法深度分析之倒排索引,来解释SEO排名的问题

今天给大家分享一下倒排索引的一些事情,为什么要说倒排索引呢?因为当用户搜索一个词的时候,返回的搜索结果页面就是经过倒排索引和一系列算法过滤后的结果排序,seo苦苦追求的不就是排名的多少吗?说的通俗一点,其实搜索引擎的索引…

网站主机Introduction

“Introduction” 真是一个让人头晕的一个词汇,文章来自3wsc的记录。 首 页 目录主要内容网站主机简介万维网如何工作、发布站点;因特网服务提供商(ISP)提供什么服务主机提供商将站点放置 自己的服务器 与放置于 ISP 的差异域名注册如何注册域名并充分利…

【网络推广方案】比相微博、SEOSEM依然是最有效手段

【网络推广方案】比相微博、SEOSEM依然是最有效手段近年来,微博作为一个重要的社交网络平台,一度成为最具潜力和最重要的流量来源。无论谁拥有大量的微博粉丝,都会引起很多关注。一些产品在微博上高度传播。人们传递这些商业信息仅仅是因为他…

JavaScript实现在线进制转换工具网站 -toolfk程序员工具网

2019独角兽企业重金招聘Python工程师标准>>> 本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果…

网站爬取-案例四:知乎抓取(COOKIE登录抓取个人中心)(第一卷)

有很多网站是需要先登录,才可以浏览的,所以我们这个案例主要讲解如何以登陆的方式抓取这类的页面 第一:http本身是一种无状态的协议 这样两个请求没有任何关系,像淘宝这样的网站需要记录用户的每次请求,来看看有状态的…

wordpress域名解析到了网站,但是点击其他页面会出现ip而不是域名

1.前提域名可以访问你的网站证明解析没问题 2.那就是wp后台的设置问题,将url和站点url改为你的域名http://www.eovision.cc清理缓存即可 亲测可用,如果改了出现页面前台和后台无法访问了, 在你使用的主题下找到functons.php任意地方加上 upda…

如何找到网站服务器的源代码_如何在网站建设中确保服务器安全?

对Seo的优化经常导致网站的攻击损失。实际上,这些事件对网站的优化是非常不利的,因为它会导致排名下降,网站无法打开等等。后来该网站甚至被拉进了黑名单。因此,怎样提前避免这些情况呢?第一,网站安全主要是…

window.open怎么设置title_网站” SEO “怎么设置

对于一个网站的SEO来说,首先必须做的是网站的标题(title),是网站的记述和网站的关键词。网站的关键词选择的好坏决定了你的网站SEO的成功与否。那么,如何制作网站的关键词呢?做的时候有什么需要注意的吗&am…

怎么在自己的网站上显示其它网站_怎么推广自己的网站

日引粉200秘籍一:如何做网络推广百度推广(点击上方视频观看)二:正文每个站长最关注的是什么,网站的推广,推广网站方法很多,但真正可以达到自己要求的方法真的不多,所以今天小编带大家分析一下怎么推广网站1…

asp虚拟主机源码在线打包_网站技术:织梦源码的二次安装详细图文教程

本文特意先给刚刚做网站的新手朋友,图文并茂的详细介绍织梦源码二次安装的流程,并将容易出错的地方截图出来。织梦1、备份目标网站。2、压缩全部文件然后下载。3、将.zip文件上传到新的空间,添加站点解压。你会发现,输入新的空间域…

sql 从ip列表中查询ip段_渗透测试,绕过CDN查找网站真实ip

转载: 谢公子学安全 作者:谢公子CDN的简单介绍在渗透测试过程中,经常会碰到网站有CDN的情况。CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。说的简单点,就是一组在不同运营商之…