C'est plus la requête préparé qui empêche l'injection sql (ou du moins qui offre une bonne protection contre), le moteur de bdd est ainsi conscient que ce qui est envoyé dans execute est le contenu de la colonne et non pas des bouts de requete sql, qui ne seront du coup pas interprétés par le moteur sql de la bdd.
Cependant, il est indiqué dans la doc php, que les requêtes préparées sont surtout utiles pour gagner du temps d’exécution si une requête doit être exécutée plusieurs fois (sur une requête simple, une grosse partie du temps de traitement est le parsage de la requête). Cela dit, je n'ai jamais trouvé (ou entendu parlé) d'exploit sql sur une requête préparée mais je ne suis pas un expert en sécu non plus.
bref: les requêtes préparées ne sont pas conçues pour protéger des injections, mais elle offre par la bande une (très) bonne protection contre ces attaques au prix d'un traitement plus long (dans le cas d'une seule requête).
[^] # Re: FizzBuzz
Posté par yohann . En réponse au journal Développeur, ou comment sur-évaluer ses compétences. Évalué à 2.
C'est plus la requête préparé qui empêche l'injection sql (ou du moins qui offre une bonne protection contre), le moteur de bdd est ainsi conscient que ce qui est envoyé dans
executeest le contenu de la colonne et non pas des bouts de requete sql, qui ne seront du coup pas interprétés par le moteur sql de la bdd.Cependant, il est indiqué dans la doc php, que les requêtes préparées sont surtout utiles pour gagner du temps d’exécution si une requête doit être exécutée plusieurs fois (sur une requête simple, une grosse partie du temps de traitement est le parsage de la requête). Cela dit, je n'ai jamais trouvé (ou entendu parlé) d'exploit sql sur une requête préparée mais je ne suis pas un expert en sécu non plus.
bref: les requêtes préparées ne sont pas conçues pour protéger des injections, mais elle offre par la bande une (très) bonne protection contre ces attaques au prix d'un traitement plus long (dans le cas d'une seule requête).