2011-08-25 102 views
1

我們正在努力爲訪問我們網站的自動化請求的數量獲得更好的指標。我們的網站提供大量數據,但也提供網頁。很容易區分服務的數據文件提供的網頁,但一些數據文件服務是通過網頁手動請求生成的。自動請求通常使用curl或wget等程序直接獲取數據。檢測自動化網頁請求

我們目前的做法是定期查看用戶代理字符串並根據用戶代理(例如wget)作出判斷,這是一個自動請求。問題是新代理商一直在增加,所以我們落後於曲線。而且,其中一些以自動方式檢索數據的方式通過使用用戶代理字符串來僞造數據,當用戶代理字符串不是時,它們聲稱它們是瀏覽器。

我想到,如果基於Apache日誌條目,我們可以確定「Javascript已啓用」,那麼人類發送請求。這並不完美,但它會比現在更好,更便攜。如果我們檢測到它已關閉,我們可以將其視爲自動請求。

是這樣的可能嗎?有沒有足夠的代碼或庫可以爲我們做這項工作,並且定期維護?

回答

1

你可以保持一個白名單,而不是黑名單。如果用戶無法使用瀏覽器xyz獲取您的內容,並且您可以添加它們,用戶將會通知您。

+0

我們需要讓所有人都能通過,除非他們經常碰到我們,否則他們可能會使系統崩潰。 – Mark

1

如果客戶端已激活JS,沒有直接的方法可以使Apache檢測到。

最有用的方法是查看哪些IP負責異常高的請求計數,並禁止它們。事實上,這可以是自動的,例如,通過計算IP並在IP過於活躍時發送403錯誤。

+0

謝謝。這是我的懷疑。我們不想禁止這些知識產權,只是能夠準確地說出它是來自人工還是自動化流程。 – Mark