2011-04-17 36 views
1

如果我使用的方法,例如插入,ZF更新我會安全嗎(mysql注入)?Zendframework - mysql注入如何保護

例如部分代碼:

  $data = array(
       'autor' => $autor, 
       'title' => $title, 
       'text' => $text, 
       'date' => $date, 
      ); 
      $news = new News(); 
      $news->insert($data); // safe? 
+0

可能[這](http://stackoverflow.com/questions/2370163/how-to-prevent-sql-injection-attack-in-applications-programmed -in-zend-framework/7764258#7764258)答案可以提供幫助。 – Starx 2011-10-14 07:17:08

回答

1

我認爲這將是用戶的輸入值罰款只是你有它的方式。我的意思是使用PDO分機的優點之一是防止SQL注入使用PHP而不是MySQL來查詢數據庫。 Here is more from devzone.zend.com

1

這很好,你這樣做。但要小心mysql表達式。在那裏,你應該使用Zend_Db_Expr -object:

$data = array(
    'author' => 'John Doe', 
    'title' => 'Headline goes here', 
    'text' => 'The content...', 
    'date' => new Zend_Db_Expr('NOW()') // <--- use this for SQL-Expressions 
); 
$news = new News(); 
$news->insert($data); 
+0

實際上,任何包含'()'的表達式都將被自動轉換;) – 2011-04-18 22:24:39

+0

http://framework.zend.com/manual/en/zend.db.table.html查看示例#13和上面的文本:默認情況下,使用參數將數據數組中的值作爲文字值插入。如果您需要將它們視爲SQL表達式,則必須確保它們與純字符串不同。使用Zend_Db_Expr類型的對象來執行此操作。 – 2011-04-19 06:52:57

+0

啊,對不起,這隻適用於'Zend_Db_Select'。 – 2011-04-19 15:23:38