Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour
Je me pose une questions sur Zend_db_Select.
Peut-on / doit-on utiliser $db->quote dans Zend_Db_Select ?
Dans la doc je lis:
"Les possibilités offertes par Zend_Db_Select inclut : l'échappement des identificateurs et des valeurs, afin de réduire les risques d'attaques par injection SQL."
Qu'est ce qu'ils entendent par "réduire les risques".... ? c'est flou...
Dernière modification par neeux (06-04-2009 14:21:48)
Hors ligne
Hello,
Ta question est-elle bien : qu'est ce que l'injection SQL ?, parce que si tu n'échappes pas (ou ne préparent pas tes données via un simple cast ou un validateur par exemple) alors tu ouvres des possibilités d'injection SQL.
Exemple : tu à une requête:
$login = $_POST['login']; $password = $_POST['password']; $sql = "select * from auth where login='$login' and password='$password'";
Avec un petit malin qui te passe un password = "mauvais_password or '1". Il pourra se loguer avec un mauvais mot de passe.
Si tu fais un $db->quote, son password deviendra "mauvais_password or \'1" ou "mauvais_password or ''1" (suivant les SGBD).
A+
Dernière modification par mikaelkael (06-04-2009 11:04:57)
Hors ligne
Non je sais ce qu'est l'injection SQL....
La question que je me pose c'est si Zend_db_Select nous protège de l'injection SQL....
Avec ton exemple:
$login = $_POST['login']; $password = $_POST['password']; $this->select()->from("auth") ->where("login = ?", $login) ->where("password = ?", $password);
D'après le manuel dans ce cas on "réduit le risque" d'injection SQL.... Ce que je voudrais savoir c'est dans quelle mesure on le réduit??
Est ce que dans ce cas Zend_Db_Select fait ce qu'il faut pour échapper les variables $login et $password?
Dernière modification par neeux (06-04-2009 11:18:09)
Hors ligne
Hello,
where() te fais un quoteInto sur ta valeur (2ème paramètre). Mais bien sûr il ne faut pas faire :
$this->select()->from("auth") ->where("login = '$login'") ->where("password = '$password'");
A+
Hors ligne
Merci beaucoup c'est ce que je voulais savoir...
Hors ligne
Pages: 1