日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php禁止ua,服务器禁止某些User Agent抓取网站

發布時間:2024/3/26 php 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php禁止ua,服务器禁止某些User Agent抓取网站 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過User Agent,可以禁止一些我們想禁止掉的訪問,下午,大叔發生nginx日志中好多奇怪的訪問抓取記錄,特別是利用ApacheBench進行的惡意檢測,于是立刻跟6P協會一起討論起來,根據碗叔和維維的經驗,整理了以下教程,方便自己和其他站長學習吧!

一、Apache

①、通過修改 .htaccess文件

修改網站目錄下的.htaccess,添加如下代碼即可(2種代碼任選):

可用代碼 (1):

RewriteEngine?On

RewriteCond?%{HTTP_USER_AGENT}?(^$|FeedDemon|JikeSpider|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|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms)?[NC]

RewriteRule?^(.*)$?-?[F]

可用代碼 (2):

SetEnvIfNoCase?^User-Agent$?.*(FeedDemon|JikeSpider|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|YisouSpider|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|JikeSpider|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|YisouSpider|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|JikeSpider|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|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$"?)?{

return?403;

}

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

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

return?403;

}

然后,在網站相關配置中的 location / { 之后插入如下代碼:

include?agent_deny.conf;

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

/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?for?JCE)','CrawlDaddy?','Java','Feedly','UniversalFeedParser','ApacheBench','Swiftbot','ZmEu','Indy?Library','oBot','jaunty','YandexBot','AhrefsBot','YisouSpider','jikeSpider','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");

wp_die('請勿采集本站,因為采集的站長木有小JJ!');

}else{

foreach($now_ua?as?$value?)

//判斷是否是數組中存在的UA

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

header("Content-type:?text/html;?charset=utf-8");

wp_die('請勿采集本站,因為采集的站長木有小JJ!');

}

}

四、測試效果

如果是vps,那非常簡單,使用curl -A 模擬抓取即可,比如:

模擬宜搜蜘蛛抓取:

curl?-I?-A?'YisouSpider'?2zzt.com

模擬UA為空的抓取:

curl?-I?-A?''?2zzt.com

模擬百度蜘蛛的抓取:

curl?-I?-A?'Baiduspider'?2zzt.com

根據結果,可以看出,宜搜蜘蛛和UA為空的返回是403禁止訪問標識,而百度蜘蛛則成功返回200,說明生效!

了解到這步,在根據自己訪問日志里奇怪的spider名稱,進行實際的可需的禁止吧!

五、附錄:UA收集

下面是網絡上常見的垃圾UA列表,僅供參考,同時也歡迎你來補充。

FeedDemon?????????????內容采集

BOT/0.1?(BOT?forJCE)?sql注入

CrawlDaddy????????????sql注入

Java??????????????????內容采集

Jullo?????????????????內容采集

Feedly????????????????內容采集

UniversalFeedParser???內容采集

ApacheBench???????????cc攻擊器

Swiftbot??????????????無用爬蟲

YandexBot?????????????無用爬蟲

AhrefsBot?????????????無用爬蟲

YisouSpider???????????無用爬蟲

jikeSpider????????????無用爬蟲

MJ12bot???????????????無用爬蟲

ZmEu?phpmyadmin???????漏洞掃描

WinHttp???????????????采集cc攻擊

EasouSpider???????????無用爬蟲

HttpClient????????????tcp攻擊

Microsoft?URL?Control?掃描

YYSpider??????????????無用爬蟲

jaunty

oBot??????????????????無用爬蟲

Python-urllib?????????內容采集

Indy?Library??????????掃描

FlightDeckReports?Bot?無用爬蟲

Linguee?Bot???????????無用爬蟲

最后,作為一名wordpress博客主又肩負著自己維護服務器的朋友們,創作吧,騷年!

總結

以上是生活随笔為你收集整理的php禁止ua,服务器禁止某些User Agent抓取网站的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。