Maison >base de données >tutoriel mysql >Comment puis-je utiliser en toute sécurité des variables de paramètres dans une instruction PyODBC SELECT ?

Comment puis-je utiliser en toute sécurité des variables de paramètres dans une instruction PyODBC SELECT ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-02 19:15:39564parcourir

How Can I Safely Use Parameter Variables in a PyODBC SELECT Statement?

PyODBC : exécution d'une instruction Select avec une variable de paramètre

Dans ce scénario, vous cherchez à récupérer des lignes de la table Throughput en fonction d'un DeviceName spécifique stocké dans data['DeviceName']. Cependant, vos tentatives précédentes d'exécution de l'instruction SELECT avec une variable paramètre ont échoué.

La solution consiste à utiliser le paramétrage dans votre instruction SQL. En utilisant le "?" et en passant le DeviceName comme argument, vous pouvez protéger votre système contre l'injection SQL et d'autres vulnérabilités de sécurité.

Voici une approche révisée :

cursor.execute("SELECT * FROM Throughput WHERE DeviceName = ?", data['DeviceName'])

Le paramétrage offre plusieurs avantages :

  • Protection contre les injections SQL : Empêche les entrées malveillantes de modifier la base de données comportement.
  • Élimine l'utilisation des caractères d'échappement :La gestion automatisée des valeurs de paramètres élimine le besoin d'échapper les valeurs individuelles avec des guillemets simples.
  • Performances améliorées : Les instructions SQL préparées sont créées une seule fois et réutilisées, ce qui entraîne une exécution plus rapide des requêtes.

En plus de la version révisée extrait de requête, voici une partie d'un exemple de code fonctionnel pour votre référence :

query = "SELECT * FROM Throughput WHERE DeviceName = '%s'" % data['DeviceName']
try:
    for row in cursor.execute(query):
        ...

N'oubliez pas de valider la saisie de l'utilisateur, que vous utilisiez du SQL paramétré ou dynamique pour plus de sécurité.

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