最近網(wǎng)站被facebook的爬蟲(chóng)惡意抓取,1秒鐘抓好幾次,持續(xù)好久,寫(xiě)robots.txt禁止facebookexternalhit和meta-externalagent,它不認(rèn),還繼續(xù)抓~
就研究了下怎么從服務(wù)器上禁止UA頭,找到了解決辦法,如下是摘錄過(guò)來(lái)的技術(shù)文檔,備用。
萬(wàn)惡的facebookexternalhit|meta-externalagent,你抓我站有毛用???

進(jìn)服務(wù)器后進(jìn)入這個(gè)路徑 nginx/conf 新建一個(gè)文件,文件名可以為:agent_deny.conf 復(fù)制以下代碼到此文件:
禁止Scrapy等爬蟲(chóng)工具的抓取
if ($http_user_agent ~* "Scrapy|Sogou web spider|compatible|Baiduspider|Lavf/|1.8.0.00757") {
return 403;
}
禁止指定UA及UA為空的訪(fǎng)問(wèn)
if ($http_user_agent ~ "compatible|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|LinkpadBot|Ezooms|^$" ){
return 403;
}
禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}
針對(duì)特殊的user_agent的訪(fǎng)問(wèn)
if ($http_user_agent ~ "Mozilla/4.0\ \(compatible;\ MSIE\ 6.0;\ Windows\ NT\ 5.1;\ SV1;\ .NET\ CLR\ 1.1.4322;\ .NET\ CLR\ 2.0.50727\)") {
return 404;
}
保存文件退出 進(jìn)入站點(diǎn)的配置文件,在server下的位置粘貼進(jìn)這段代碼:
include agent_deny.conf;
保存,退出,即可生效
注: 1、如果你只想禁止google的,就把compatible刪了,改成Googlebot 2、最好的辦法是禁止播放器爬蟲(chóng),這樣你的cms愛(ài)怎么被爬就怎么被爬
==============================
如果你只是想播放器不被爬蟲(chóng),如果你的播放器主頁(yè)是php的,那就在主頁(yè)php文件最上方加入以下代碼:
$theua='compatible|Baiduspider|YisouSpide';
$uapanduan=preg_match('('.$theua.')', $_SERVER['HTTP_USER_AGENT'], $uapd)?1:0; if($uapanduan==1){
header('Location:https://www.baidu.com');exit();
}
注:$theua=’compatible|Baiduspider|YisouSpide’; 此參數(shù)可以自己修改
無(wú)天博客
掃一掃加微信 

最新評(píng)論
通過(guò) systemctl 管理 firewalld 服務(wù): # 啟動(dòng)防火墻 systemctl start fire
firewalld 常用命令: # 查看當(dāng)前狀態(tài) firewall-cmd --state # 查看所有規(guī)則 f
轉(zhuǎn)自寶塔平臺(tái),留存?zhèn)溆?/span>
來(lái)源通義千問(wèn)
$viewrnd=rand(2,5); 這個(gè)是重點(diǎn)
多年前親測(cè)有用,現(xiàn)在你只能網(wǎng)上再找找了,注意版本號(hào)
親測(cè)無(wú)效。。
復(fù)制了兩段代碼后直接前后臺(tái)都你的網(wǎng)站遇到致命錯(cuò)誤。。。