2012-07-12 76 views
1

今天早上我被攻擊了,並有一些JS注入我的網站。我試圖追蹤這個洞並修補它。我的印象是,以下的PDO是安全的,有人可以證實或否認這一點?PDO和安全

 //Adding the lead to the local database 
     $leads = array($firstName, $lastName, $company, $state, $country, $phone, $email, $industry, $uniqueId, $comments); 

     $qry = $dbh->prepare(
      'INSERT INTO leads (FirstName, LastName, Company, State, Country, Phone, Email, Industry, Solution, Comments) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'); 

     if(!($qry->execute($leads))) { 
      print_r($dbh->errorInfo()); 
     } 
+2

由於該查詢的立場,它是「安全」。但是,SQL注入僅僅是感染網站的幾十萬個攻擊媒介之一,所以你最好看看別處。 – 2012-07-12 18:13:55

回答

1

從某種意義上講,它是安全的,即某人將無法注入SQL查詢 - 但它不會阻止他們將HTML放入任何字段。您可能需要考慮使用類似strip_tags的內容來防止HTML被存儲,或者在將其顯示給用戶之前進行一些額外的清理。

+0

感謝您的信息! – 2012-07-12 18:20:50

1

PDO不能保護您免受JavaScript注入。它保護你免受SQL注入。它會把危險的JS放入你的數據庫中,因爲PDO不關心什麼是和不是危險的JS。這不是它的工作。您需要找到其他方法來防止惡意JS顯示給用戶。

+0

感謝您的信息! – 2012-07-12 18:19:27

1

這顯然是安全的從SQLI,但不是從XSS或受污染的輸入。這隻意味着攻擊者可能無法污染你的SQL查詢。但是輸出部分可能被污染了。檢查你的輸出逃避/ sanatization方法!

+0

感謝您的信息! – 2012-07-12 18:21:05