Maison > développement back-end > Tutoriel Python > Comment puis-je lier en toute sécurité des variables dans des instructions SQL à l'aide de Python ?

Comment puis-je lier en toute sécurité des variables dans des instructions SQL à l'aide de Python ?

Susan Sarandon
Libérer: 2024-12-31 05:14:09
original
220 Les gens l'ont consulté

How Can I Safely Bind Variables in SQL Statements Using Python?

Liaison de variables dans les instructions SQL à l'aide de Python

En Python, il est essentiel de transmettre des variables dans des instructions SQL sans les inclure dans la requête chaîne. Cela empêche les attaques par injection SQL et garantit une gestion correcte des paramètres.

Pour y parvenir, utilisez la méthode curseur.execute() avec des espaces réservés (par exemple, %s pour les chaînes, %d pour les entiers et « %f » pour valeurs à virgule flottante) pour représenter les variables.

cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
Copier après la connexion

Notez que les paramètres de la méthode execute() doivent être un tuple, même si vous transmettez une seule valeur. Pour indiquer un seul paramètre, utilisez un tuple avec une virgule finale :

cursor.execute("INSERT INTO table VALUES (%s)", (var1,))
Copier après la connexion

L'API de la base de données gère l'échappement et la citation appropriés des variables. Évitez d'utiliser l'opérateur de formatage de chaîne (%) car il n'effectue aucun échappement ni citation, laissant l'application vulnérable aux attaques. De plus, il est important d'utiliser des instructions préparées (comme celle présentée ici) au lieu de concaténer des chaînes pour créer l'instruction SQL, car cela améliore à la fois la sécurité et les performances.

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 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