Insérer des listes en toute sécurité dans les clauses MySQL IN
Cet article explore une méthode efficace et sécurisée pour insérer des listes dans les clauses IN des bases de données MySQL. Alors que l'approche traditionnelle consiste à mapper des listes sur des chaînes et à les insérer directement, cette méthode présente un risque d'injection SQL en raison de la nécessité de citer et d'échapper manuellement.
Pour éviter cette vulnérabilité, une approche plus sûre consiste à utiliser l'option list directement en tant que paramètre dans la requête MySQL. Le code suivant illustre cette méthode :
format_strings = ','.join(['%s'] * len(list_of_ids)) cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings, tuple(list_of_ids))
Ce code accomplit les tâches suivantes :
Il est important de notez que cette méthode repose sur la capacité du pilote MySQL à gérer les paramètres en toute sécurité. Tant que les données sont transmises correctement en paramètre, la requête reste à l'abri de l'injection SQL.
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!