Maison  >  Article  >  développement back-end  >  Comment créer en toute sécurité des clauses MySQL IN avec des listes en Python ?

Comment créer en toute sécurité des clauses MySQL IN avec des listes en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-15 05:08:02241parcourir

How to Safely Create MySQL IN Clauses with Lists in Python?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn