2009-08-18 88 views
2

這個問題類型擴展我的other question on robots and captcha。我做了所有人都推薦的(謝謝大家!),但是,是否有可能首先檢測服務器上的機器人?例如(我將再次使用Stackoverflow作爲參考):有時,當我提出一個問題時,Stackoverflow回來要求我驗證我是否是人類。 但是,有時它不。檢測服務器上的機器人?

Stackoverflow如何做到這一點,因爲這是我想要做的:檢查數據,如果它看起來像一個機器人,請求人工驗證。

此外,這需要在Java(最好),Perl或PHP上完成。

感謝

回答

0

在計算器上,它是由太快執行相同的任務次數過多或過快地執行多個任務的完成。

如果你想模擬這個,你可以跟蹤最近請求的數量和時間,並檢查一切是否在你的限制之內。如果不是,則重定向到驗證碼。

不幸的是,我沒有足夠的Java EE經驗來提供任何代碼,但希望我的方法能給你一些想法。

+0

或空閒時間過長。 – 2009-12-06 23:05:47

0

簡單的方法是記錄活動(點擊,評論等),然後檢查它們之間的頻率和相似度。您通常可以通過查找重複執行的類似任務來檢測機器人。

如果您對機器人檢測非常認真,請記錄每次擊鍵和鼠標移動。普通用戶有一定比例的錯誤和不確定性與打字和導航網站有關。一個100%打字錯誤的用戶可以輕鬆快速地瀏覽網站(將鼠標從a點移動到b點的直線上),而無需使用後退按鈕,這很可能是一個bot。