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 éviter l'injection SQL en permettant à MySQL de gérer le paramétrage du 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é.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3