Maison > base de données > tutoriel mysql > Comment utiliser en toute sécurité une liste Python dans une clause MySQL IN ?

Comment utiliser en toute sécurité une liste Python dans une clause MySQL IN ?

Barbara Streisand
Libérer: 2024-12-18 13:27:21
original
949 Les gens l'ont consulté

How to Safely Use a Python List in a MySQL IN Clause?

Mappage d'une liste à utiliser dans une clause Python MySQL IN

Lorsque vous essayez d'utiliser une liste d'ID dans une clause IN dans une requête MySQL, il est essentiel de assurer la sécurité de l'opération, en évitant les vulnérabilités potentielles d'injection SQL. Contrairement au mappage de la liste sur une chaîne et à son utilisation directe dans la requête, ce qui la rend vulnérable, une approche plus sûre consiste à utiliser la liste directement comme paramètre.

Pour y parvenir, on peut utiliser une chaîne de format pour générer le nombre approprié d'espaces réservés (%s) en fonction de la longueur de la liste. La liste elle-même est ensuite transmise sous forme de tuple à la fonctionexecute(), évitant ainsi le besoin de citations et d'échappements manuels.

format_strings = ','.join(['%s'] * len(list_of_ids))
cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings,
                tuple(list_of_ids))
Copier après la connexion

En envoyant les données (list_of_ids) en tant que paramètre, elles sont gérées par Pilote MySQL directement, éliminant le risque d'injection. Cette méthode permet de conserver tous les caractères de la chaîne, sans avoir besoin d'une désinfection ou de guillemets supplémentaires.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal