Évitez l'injection SQL en gérant correctement les variables dans la clause LIMIT
Lors de l'interrogation d'une base de données avec une entrée fournie par l'utilisateur, garantissant l'intégrité des données et empêchant SQL l’injection est cruciale. Cependant, lorsque vous utilisez la méthode bindValue dans la clause LIMIT de MySQL, il est essentiel de gérer correctement les valeurs d'entrée.
Dans l'extrait de code fourni, l'erreur provient de l'ajout de guillemets simples au paramètre :skip dans la partie LIMIT de l'instruction SQL. Cette différence est due au fait que le PDO de PHP entoure automatiquement les valeurs non entières entre guillemets simples.
Pour résoudre ce problème, assurez-vous que le paramètre :skip est converti en entier avant d'être transmis à la méthode bindValue :
$fetchPictures->bindValue(':skip', (int) trim($_GET['skip']), PDO::PARAM_INT);
En forçant la valeur à un entier, nous évitons l'ajout de guillemets simples, qui peuvent conduire à des vulnérabilités d'injection SQL. Cette pratique garantit que les entrées fournies par l'utilisateur sont correctement nettoyées avant d'être utilisées dans la requête SQL.
N'oubliez pas que la conversion en un entier ne fonctionne que si l'entrée est une chaîne numérique. Pour les saisies non numériques, des mécanismes de validation et de gestion des erreurs appropriés doivent être mis en œuvre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!