Création de clauses MySQL IN sécurisées avec des listes
Lorsque vous travaillez avec des bases de données MySQL et Python, il peut être utile d'imploser une liste à utiliser dans une clause IN. Cependant, il est essentiel de le faire en toute sécurité pour éviter les vulnérabilités d'injection SQL.
Au lieu de construire manuellement une chaîne contenant la liste de valeurs, la méthode préférée consiste à utiliser le mécanisme des paramètres de requête. Cela vous permet de transmettre la liste directement au pilote de base de données sans avoir à gérer de guillemets ou d'échappement.
Voici comment y parvenir :
format_strings = ','.join(['%s'] * len(list_of_ids)) cursor.execute("DELETE FROM foo.bar WHERE baz IN (" + format_strings + ")", tuple(list_of_ids))
En utilisant cette méthode, vous pouvez évitez l'injection SQL en permettant à MySQL de gérer le paramétrage de la requête. Les données seront insérées directement dans la requête sans aucun prétraitement, garantissant à la fois sécurité et efficacité.
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!