29-01-2011, 08:59 AM
bon bein voilà c'est fait, ouf...
je ne bidouille plus mes variables POST et GET en les passant dans une moulinette d'encodage contre les injections sql, toutes mes variables sont saines et non modifiées.
du coup j'ai été obligée de vérifier toutes les requêtes une à une et de les préparer (PDO). Dans le doute j'ai quasiment préparée toutes mes requêtes sauf quelques unes qui utilise las seule clause WHERE IN ($liste) . les paramètres de $liste sont échappés si c'est une string et laissés tel quel si c'est un numeric (une fonction toute bête se carge du boulot) et dans le doute j'ai préparé les requêtes qui n'en avait pas vraiement besoin, :$....
tout ca pour donner un conseil aux débutants amateurs tels que moi:
ne modifier pas les variables issues de l'utilisateur (POST, GET, etc..) dès la récupération de celles ci mais uniquement lors de l'utilisation dans une requête SQL, le top étant d'utiliser les requêtes préparées.
dans beaucoup trop de tuto php on peut trouver ceci:
c'est une ânerie de modifier le $_POST dès la récupération de celui ci, laisser le tranquille ne l'échapper comme vous voudrez uniquement lors d'une utilisation dans une requête SQL !
PS: j'ai quand même mis une semaine à vérifier toutes mes requêtes et tout mes POST et GET , la honte...
je ne bidouille plus mes variables POST et GET en les passant dans une moulinette d'encodage contre les injections sql, toutes mes variables sont saines et non modifiées.
du coup j'ai été obligée de vérifier toutes les requêtes une à une et de les préparer (PDO). Dans le doute j'ai quasiment préparée toutes mes requêtes sauf quelques unes qui utilise las seule clause WHERE IN ($liste) . les paramètres de $liste sont échappés si c'est une string et laissés tel quel si c'est un numeric (une fonction toute bête se carge du boulot) et dans le doute j'ai préparé les requêtes qui n'en avait pas vraiement besoin, :$....
tout ca pour donner un conseil aux débutants amateurs tels que moi:
ne modifier pas les variables issues de l'utilisateur (POST, GET, etc..) dès la récupération de celles ci mais uniquement lors de l'utilisation dans une requête SQL, le top étant d'utiliser les requêtes préparées.
dans beaucoup trop de tuto php on peut trouver ceci:
$param= htmlentities($_POST['param'], ENT_QUOTES);
c'est une ânerie de modifier le $_POST dès la récupération de celui ci, laisser le tranquille ne l'échapper comme vous voudrez uniquement lors d'une utilisation dans une requête SQL !
PS: j'ai quand même mis une semaine à vérifier toutes mes requêtes et tout mes POST et GET , la honte...