2010-10-20 120 views
2

我用下面的代碼防止SQL注入在ZF

$this->getDb()->fetchRow($sql, $params); 

是從SQL注入免費的嗎?請指導我。我如何使它免費從SQL注入。

回答

3
  1. 使用Zend_Db的類,爲轉義

  2. 使用的Zend_Form的的驗證爲了濾波器的輸入值。

3.Uses 準備報表內部儘可能一樣:

// Build this query: 
// SELECT product_id, product_name, price 
// FROM "products" 
// WHERE (price < 100.00 OR price > 500.00) 
// AND (product_name = 'Apple') 
$minimumPrice = 100; 
$maximumPrice = 500; 
$prod = 'Apple'; 
$select = $db->select() 
    ->from('products', 
    array('product_id', 'product_name', 'price')) 
    ->where("price < $minimumPrice OR price > $maximumPrice") 
    ->where('product_name = ?', $prod); 

讀更多在此鏈接:

http://static.zend.com/topics/Webinar-Zend-Secure-Application-Development-with-the-Zend-Framework.pdf

+0

Zend的形式驗證器和過濾器是良好的第一sql注入的防線。 – Hanseh 2010-10-20 11:35:13

+1

同時你沒有使用價格變量的佔位符,並沒有給出任何提示如何在這種特殊情況下逃避它們。 – zerkms 2010-10-22 00:03:17