Je me demande si ces instructions préparées de PDO augmentent vraiment la sécurité, ou si elles ne sont qu'un "bon marché" de remplacement de texte dans la requête. Le point de déclarations préparées est en fait, que tout ce qui est insérée comme paramètre, ne sera pas analysée par le SGBD dans le cadre des instructions lui-même, donc un paramètre commeLes instructions préparées dans PDO augmentent-elles réellement la sécurité?
"'; DROP TABLE foobar;"
n'a aucun effet et ne rompt pas la requête. Est-ce que quelqu'un le sait en détail? J'ai pensé à utiliser PDO avec des instructions préparées pour prévenir l'injection SQL. Il s'avère qu'ils sont difficiles à utiliser (et ne fonctionnent même pas, au moins sur ma machine locale), donc je veux le savoir avant de perdre beaucoup plus de temps avec PDO ;-)
http://ilia.ws/archives/103-mysql_real_escape_string-versus-Prepared-Statements.html –
Voter pour fermer comme Google a montré la question SO précédente qui a répondu à celle-ci. – si618
votre exemple d'exploit d'ajouter une autre instruction à la fin après qu'un point-virgule soit appelé "query stacking" - L'empilement de requêtes ne fonctionne que sur certains SGBD lors de l'utilisation de certains modules de langue et n'est pas universel. Ce qui est universel, c'est l'ajout de nouveaux bits de sql à la requête existante via des mots-clés SQL tels que AND, OR, UNION, ORDER BY, etc. – Cheekysoft