2010-10-20 9 views
2

J'utilise le code suivantinjection dans ZF Prévenir Sql

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

Est-il sans injection sql? Guidez-moi s'il-vous-plaît. Comment je peux le rendre libre de l'injection de sql.

Répondre

3
  1. utilisation classe Zend_Db, pour Échapper

  2. utilisé le validateur du Zend_Form pour filtre les valeurs d'entrée.

3.Uses Préparé États en interne autant que possible comme:

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

savoir plus dans ce lien:

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

+0

forme zend validateurs et les filtres sont bons premiers ligne de défense pour l'injection sql. – Hanseh

+1

En attendant, vous n'avez pas utilisé d'espace réservé pour les variables de prix et vous n'avez pas donné d'indice sur la façon de les échapper dans ce cas particulier. – zerkms