"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment insérer en toute sécurité les variables dans les requêtes SQL à l'aide de Python?

Comment insérer en toute sécurité les variables dans les requêtes SQL à l'aide de Python?

Publié le 2025-02-06
Parcourir:358

How to Safely Insert Variables into SQL Queries Using Python?

insérer en toute sécurité les variables dans les requêtes SQL dans Python

Lors du traitement des requêtes de base de données dans Python, vous devez généralement inclure des variables dans l'instruction de requête. Cependant, assurez-vous de fonctionner d'une manière qui empêche les erreurs de syntaxe ou les vulnérabilités de sécurité.

Considérez le code python suivant:

cursor.execute("INSERT INTO table VALUES var1, var2, var3")

Dans ce code, var1 est un entier, var2 et var3 sont des chaînes. Cependant, lorsque Python essaie d'inclure les noms var1 , var2 , et var3 dans le cadre du texte de la requête lui-même, des problèmes surviennent, résultant en l'invalidation de la requête.

Pour résoudre ce problème, vous pouvez utiliser le mécanisme de remplacement de l'espace réservé fourni par l'API de la base de données. Voici comment réécrire le code en utilisant les espaces réservés:

cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))

Dans ce code amélioré:

  • % s représente un espace réservé pour remplir la valeur.
  • (var1, var2, var3) est un tuple contenant la valeur à insérer.

En transmettant les valeurs sous forme de tuples, l'API de la base de données gère la variable nécessaire s'échappe et références, assurant la compatibilité de la base de données et prévenir les risques de sécurité potentiels.

Notez que pour un seul paramètre, un tuple avec des virgules de fuite est requis:

cursor.execute("INSERT INTO table VALUES (%s)", (var1,))

En outre, évitez d'utiliser l'opérateur de formatage de chaîne (%) pour insérer des variables car il peut provoquer des vulnérabilités de sécurité et l'API de la base de données ne le prend pas en charge.

Dernier tutoriel Plus>

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