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 ?
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))
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,))
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!