Ip-Address

如何以程式方式檢測機器人

  • November 21, 2016

我們有一種情況,我們記錄訪問,頁麵點擊的訪問者和機器人正在堵塞我們的數據庫。我們不能使用驗證碼或其他類似的技術,因為這是在我們甚至要求人工輸入之前,基本上我們正在記錄頁麵點擊,我們只想記錄人類的頁麵點擊。

那裡有已知的機器人 IP 列表嗎?檢查已知的機器人使用者代理是否有效?

有幾個元素要追求這一點。

使用者代理字元串是一個值,但它很容易被欺騙。

我發現一個相當有用的啟發式方法是進行一些預處理,然後查看流量:

解析您的訪問日誌,添加主機、ASN、CIDR 和 ASN 名稱資訊。將 URL 子集到非變數部分(通常將所有內容從“?”中刪除,儘管是 YMMV)。如果您有特定的搜尋或實用程序頁面,請關注這些(通常我已經看到使用某種使用者驗證服務或搜尋的機器人出現問題)。

尋找具有大量流量的單個 IP。

尋找具有大量流量的單個 CIDR 塊或 ASN。

排除合法的搜尋流量(Google、必應、雅虎、百度、Facebook 和類似的機器人/網路空間)。這可能會成為您持續維護的更大領域之一,這些東西一直在變化。

排除合法的使用者流量。特別是對於您網站的大量使用者。

確定最終使用者和搜尋機器人的正常使用模式。如果一個典型的使用者每分鐘訪問 1-3 個頁面,典型會話為 5-10 分鐘,並且 Googlebot 將自己限制為每分鐘 10 次搜尋,然後您突然看到單個 IP 或 CIDR 塊亮起數百或每分鐘數千次搜尋,您可能已經找到了您的問題。

調查大流量/高影響(負面)流量的來源。WHOIS 查詢經常會顯示這是某種託管空間——通常不會在其中看到大量合法使用者流量。模式可能出現在使用者代理字元串、請求 URL、引薦來源字元串等中,這會提示您使用其他模式。

如果您最終進行大量 WHOIS 查詢,記憶體 whois 客戶端可能會提供很大幫助,既可以加快流程速度,又可以避免註冊商的速率限制/節流(出於某種原因,他們不會善待進行的實體數以千計的重複/自動查找)。您可以直接向註冊商諮詢更多資訊,儘管我沒有這樣做。

檢查各種信譽數據庫(垃圾郵件查找、SenderBase,現在有一些Google的東西)也可能證實網路空間監管不善。

我很想說我有一些東西可以按照這些構想賣給你,但我正在使用的主要是一些 awk 和其他工具來將它們組合在一起。它會在一分鐘左右解析一百萬行日誌(加上一些準備成本來為 IP 和 ASN/CIDR 資訊準備雜湊)。不是完全自動化的,但只需幾分鐘的工作,它就能讓我對問題有一個不錯的了解。

引用自:https://serverfault.com/questions/138952