2010-08-30 128 views
6

有一個IP(來自中國)試圖下載我的整個網站。它下載我的所有頁面並顯着加載服務器(我有超過500 000頁)。看看訪問日誌,我可以告訴它絕對不是谷歌機器人或任何其他搜索引擎機器人。從整個網站下載的防止?

暫時我禁止它(使用iptables規則),但它不是我的解決方案,因爲我的一些真實用戶也具有相同的IP,因此他們也被禁止並且無法訪問該網站。

有什麼辦法可以防止這種「用戶活動」?也許一個機制,如果你嘗試請求超過5個請求一秒鐘或什麼東西,實現驗證碼?

P.S.我正在使用Yii框架(PHP)。

任何建議,非常感謝。

謝謝!

回答

5

您已回答了您自己的問題!

如果請求超過每秒或每分鐘的特定數量,則會顯示生成captcha

您應該使用CCaptchaAction來執行,如this

+0

我的意思是我應該如何實現它? :D用戶會話? – Mensch 2010-08-30 06:31:02

+0

看到我上面的修改。 – pavanlimo 2010-08-30 06:41:52

0

我想監視可疑用戶活動的最佳方法是用戶會話,CWebUsergetState()/setState()。在用戶會話中存儲當前請求時間,將其與以前的幾個值進行比較,如果用戶經常發出請求,則顯示驗證碼。

創建新組件,通過CWebApplication::$preload預載它,並檢查組件init()函數中的用戶活動。這樣你就可以輕鬆地打開和關閉機器人檢查。