2013-02-05 71 views
0

我在我的網站上添加了一個搜索功能,用戶將能夠搜索我的頁面內容。使用PHP的MySQL搜索限制

代碼:

try 
     { 
      $pdo = new PDO("mysql:host=hostname;dbname=searchdb", "searchuser", "searchpw", 
array(PDO::ATTR_PERSISTENT => true)); 
     } 
     catch (PDOException $ex) { 
      echo $ex->getMessage() . "<br>"; 
      exit('Connection Closed'); 
     } 
     $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 
     $stmt = $pdo->prepare($query); 
     $stmt->setFetchMode(PDO::FETCH_ASSOC); 
     $stmt->execute(); 

現在我想知道如何保護它從搜索超載。我相信任何人都可以創建一個簡單的bot程序,這可能會浪費我的帶寬/ CPU與太多的搜索查詢。

我的意思是我可以跟蹤的IP地址,並從那裏限制,但我想盡可能避免這條路線。

+0

也許你會發現[這個問題](http://stackoverflow.com/a/131685/467164question)有趣... –

回答

0

的方法有很多,也許嘗試限制每個時間間隔搜索特定的IP地址,創建表和存儲的搜索IPS和時間搜查,並根據需要讓儘可能多的搜索..簡單而有效的..

0

沒有像「搜索超載」這樣的事情。
有一種稱爲「拒絕服務」的攻擊,由多個同時發生的請求執行到任意應用程序部分。所以,你必須閱讀一般的DOS保護,因爲這種攻擊與mysql或PDO無關。

還有一個有用的建議:
解決他們的外觀問題。
換句話說,只解決真正的問題,而不是想象中的問題。
只要你沒有這樣的「搜索過載」問題 - 也不要採取任何對策。