2010-12-22 76 views
3

Doctrine是否自動阻止SQL注入?
下面的代碼是否安全?Doctrine和SQL注入

$user = new Model_User(); 
$user->name = $_POST['username']; 
$user->save(); 

回答

4

就SQL注入而言,我認爲不會有問題。但是,您可能還想確保用戶名格式良好(例如,可能爲<script>//do somthing bad</script>,並且在您在站點某處輸出該用戶名時將執行該腳本)

3

您可以安全地使用只要您使用bound parameters(Doctrine將在後臺使用這些示例,以便您的示例沒問題),則可以使用Doctrine(以及任何其他基於PDO的數據庫庫)進行SQL注入,但是,如果不對其進行消毒,則不應使用來自客戶端的輸入第一。看一看PHP的Filter庫 - 特別是衛生化的例子。在你的情況下,你至少要驗證名稱是一個字符串,使用FILTER_SANITIZE_STRING「Strip標籤,可選擇去除或編碼特殊字符。」。