GoogleBot 和 MSNBot 的驗證

已發表於: 作者: ijliao 2 則迴響

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

剛看到一篇文章,提到繼 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: , , ,

CC BY-NC-SA 4.0
GoogleBot 和 MSNBot 的驗證 by ijliao is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

2 則回應給 GoogleBot 和 MSNBot 的驗證 迴響(RSS) 迴響(RSS)

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

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

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

你可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>