在ZF中防止Sql注入

时间:2010-10-20 07:11:42

标签: mysql security zend-framework sql-injection

我使用以下代码

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

免于sql注入吗?请指导我。我怎么能从sql注入中解脱出来。

1 个答案:

答案 0 :(得分:3)

  1. 使用Zend_Db类,转义

  2. 使用Zend_Form的验证器过滤输入值。

  3. 3.尽可能在内部使用准备好的语句,如:

    // 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