GoogleBot 和 MSNBot 的驗證

30 十一月, 2006 (13:28) | 電腦與網路

就算我們知道方法,但是還是沒辦法有效處理啊…

剛看到一篇文章,提到繼 Google 先前公佈GoogleBot 的驗證法之後,Microsoft Live Search公佈MSNBot 的驗證法。

之所以會需要這種驗證,是因為會有奇怪的人會去偽裝。一般來說,比較知恥一點的大公司的 bot 都會遵循 robots.txt,不該去的地方不會去;不過有的單位會亂搞亂抓,而且就算你在 robots.txt 裡面設了 Disallow 它還是會照抓不誤;這時候,就只好用比較激烈一點的手段,看到特定 bot 就直接吐 Forbidden 給它。不過正所謂道高一尺魔高一丈,它們乾脆就掛著別人的招牌出來混,你總不會連 GoogleBotMSNBot 也都擋掉吧 ?

為了解決這個問題,GoogleMicrosoft Live Search 提供的解法就是做兩次 DNS 查詢,第一次反查,第二次正查:先拿 IP 反查出一個 hostname,GoogleBot 的來源會是 *.googlebot.com.MSNBot 的來源則會是 *.search.live.com.;接著再用該 hostname 去正查,看得到的 IP 和先前的一不一致。第一次的反查是為了確知來源,而第二次的正查則是為了避免偽造的反查結果。

不過,就算知道了這種規則,我們還是很難去自動處理這些亂搞的 bot 啊… 總不可能叫 http server 去即時判斷到底現在來的這隻是不是真正的 bot 吧,這樣會讓速度整個慢下來。比較好的做法或許是改寫 log 分析程式 (目前似乎沒人提供這種功能 ?),找出所有 bot 的 IP,然後批次進行 DNS 查詢,有問題的再人工加進 ban list 裡面。

Technorati Tags: , , ,

Comments

Comment from V!c
Time 2006/12/03 at 11:05 上午

今天我知道了為什麼他們要提驗證…不是別家的Bot, 是因為有一大票spammer bot假冒GoogleBot在發spam (GoogleBot不會發POST package吧?)…
而且每次一炸就是一堆, 很難搞~_"

Comment from Alica
Time 2006/12/03 at 4:26 下午

如果能確認Googlebot不會送POST,那麼直接擋掉所有bot送來的POST不就好了?似乎也沒有必要驗證它到底是不是貨真價實的Googlebot啊。

Write a comment