我無法谷歌在這個問題上有用的東西,所以我會很感激鏈接到在這個問題處理的文章,或直接在這裏回答,要麼罰款。防止搜索濫用
我在一個網站上實現了一個PHP/MySQL搜索系統,這個網站有很多訪問者,所以我要實現一些限制,允許訪問者在搜索字段中輸入的字符長度和兩次搜索之間所需的最短時間。由於我對這些問題很陌生,而且我不知道爲什麼通常會這樣做的「真正原因」,所以我只假設字符最小長度是爲了儘量減少數據庫返回結果的數量而實現的,並且搜索之間的時間間隔將被執行,以防止機器人將垃圾郵件發送到搜索系統並減慢網站速度。是對的嗎?
最後,如何實現兩次搜索之間的最短時間的問題。我想出了一個解決方案,在僞代碼,這是
- 設置的URL檢測Cookie,其中搜索表單提交給
- 將用戶重定向到URL在搜索結果應該是輸出
- 檢查測試cookie存在
- 如果不是,輸出自己是不是允許使用的搜索系統警告(可能是一個機器人)
- 檢查一個cookie存在,告訴蒂姆最後的搜索
- 如果這是不太有5秒前,輸出一個警告,他應該再次搜索
- 搜索
- 設置與上次搜索到當前爲止的cookie之前等待電子
- 輸出搜索結果
這是做的最好的方法是什麼?
我知道這意味着禁用cookies的訪問者將無法使用搜索系統,但這些日子真的是個問題嗎?我無法找到2012年的統計數據,但我設法找到了數據,說2009年有3.7%的人已經禁用了Cookie。這看起來不是很多,我想這些日子可能應該更少。
「由於我對這些問題有所瞭解,並且我並不真正瞭解爲什麼通常會這樣做的」真正原因「,」您認爲可能沒有必要嗎?我不做任何工作或個人網站。 – 2013-03-21 00:31:59
@Dagon我已經考慮過這個,我也沒有實現過。但是這個特定的網站最近遭到了很多DDoS的攻擊,客戶對這個問題的未來問題感到害怕,所以我認爲搜索濫用應該是另外一件事情,以防止... – 3Nex 2013-03-21 00:57:58
如果你想花時間修復不存在的問題 - 玩的開心! – 2013-03-21 01:01:05