CDN源站遮蔽搜尋引擎爬蟲

Ku_Andrew發表於2016-07-18

原文轉自本人部落格 – Ku_Andrew`s Blog
CDN源站遮蔽搜尋引擎爬蟲

0x00 前言

自從去年全站使用阿里雲CDN之後,網站訪問速度得到了很明顯的提升,同時阿里雲CDN的穩定性也很棒。但最近這段時間發現,百度和谷歌的爬蟲開始爬我的源站了。這就有點麻煩了,要是不趕緊解決,給主站降權就不好了。

0x01 思路

因為蜘蛛爬了不該爬的東西,解決思路自然是限制蜘蛛的爬取。
大概有三種方法可以限制蜘蛛的抓取:

1.robots.txt檔案

robots檔案用於限制搜尋引擎蜘蛛的行為,在源站遮蔽蜘蛛主要是為了限制蜘蛛對同程式下不同域名的抓取。但是robots.txt檔案沒有可以限制域名相關的引數,只能限制蜘蛛對當前域名下檔案的抓取,此路不通。

2.設定META標籤

當訪客訪問的域名不是主站域名時,在網頁的<meta>標籤中植入限制蜘蛛活動的內容,實現起來比較簡單,只用修改一下模板中的header檔案即可。

3.識別蜘蛛的UA,在網站程式上做限制

獲取訪客的User-Agent,如果是搜尋引擎蜘蛛的UA,則跳轉至主站。也有一個問題,就是要去網上收集各家搜尋引擎蜘蛛的UA,想著就累。
人懶,就選擇設定META標籤的方法。

0x02 實踐

第一步,在程式中獲取訪客訪問的域名。這一歩就不做多介紹了,不同語言和環境有不同的方法獲取,PHP可以通過如下語句獲取訪問者當前訪問的域名:
$_SERVER[`SERVER_NAME`];
第二步,如果不為主站域名,則輸出HEAD中的META標籤限制蜘蛛的活動:

if ($_SERVER[`SERVER_NAME`] != `www.kungg.com` {
    echo `<META NAME="robots" CONTENT="noindex,nofollow">`;
}

0x03 大功告成

額,插不了圖片。。

相關文章