2010-10-20 100 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