Maison >développement back-end >Tutoriel Python >Comment les requêtes paramétrées peuvent-elles empêcher l'injection SQL dans MySQL ?

Comment les requêtes paramétrées peuvent-elles empêcher l'injection SQL dans MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-16 17:48:18835parcourir

How Can Parameterized Queries Prevent SQL Injection in MySQL?

Éviter les attaques par injection SQL avec des requêtes paramétrées dans MySQL

Dans MySQL, il est essentiel d'utiliser des requêtes paramétrées lors de l'insertion de données pour éviter les failles de sécurité. L'interpolation de chaînes, comme illustré dans l'extrait de code fourni, est sujette aux attaques par injection SQL car elle n'échappe pas correctement aux paramètres d'entrée.

La syntaxe correcte pour les requêtes paramétrées dans MySQL utilisant le module MySQLdb est la suivante :

cursor.execute ("""
    INSERT INTO Songs (SongName, SongArtist, SongAlbum, SongGenre, SongLength, SongLocation)
    VALUES
        (%s, %s, %s, %s, %s, %s)

""", (var1, var2, var3, var4, var5, var6))

Dans cette syntaxe, des espaces réservés (%s) sont utilisés à la place des valeurs de variables. Le tuple (var1, var2, ..., var6) contient les valeurs réelles à insérer.

En utilisant des requêtes paramétrées, vous garantissez l'échappement correct de tous les paramètres d'entrée, empêchant ainsi les acteurs malveillants d'injecter du code SQL nuisible. dans votre base de données et en exploitant les vulnérabilités potentielles.

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