"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 les requêtes paramétrées dans SQL empêchent-elles les attaques d'injection SQL?

Comment les requêtes paramétrées dans SQL empêchent-elles les attaques d'injection SQL?

Publié le 2025-02-06
Parcourir:650

How Do Parameterized Queries in SQL Prevent SQL Injection Attacks?

requête paramétrée et marque de questions paramétrée

]

Lorsque vous recherchez des documents SQL, vous pouvez rencontrer un point d'interrogation (?) Dans votre requête. Ces lieux représentent des requêtes paramétrées et sont largement utilisées pour exécuter Dynamic SQL dans les programmes.

La requête paramétrée présente de nombreux avantages. Ils simplifient le code en séparant les valeurs des paramètres de la requête elle-même, ce qui le rend plus efficace et flexible. De plus, ils améliorent la sécurité en empêchant les attaques d'injection SQL.

par exemple, dans un exemple de pseudo-code:

ODBCCommand cmd = new ODBCCommand("SELECT thingA FROM tableA WHERE thingB = 7")
result = cmd.Execute()

odbccommand cmd = new odbccommand ("sélectionner thinga from tablea where thingb =?") cmd.parameters.add (7) result = cmd.execute ()
ODBCCommand cmd = new ODBCCommand("SELECT thingA FROM tableA WHERE thingB = ?")
cmd.Parameters.Add(7)
result = cmd.Execute()

string s = getStudentName () cmd.commandText = "SELECT * FROM Students Where (name = '" S "')" cmd.execute ()
string s = getStudentName()
cmd.CommandText = "SELECT * FROM students WHERE (name = '"   s   "')"
cmd.Execute()

s = getStudentName () cmd.commandText = "SELECT * FROM Students Where name =?" cmd.parameters.add (s) cmd.execute ()
s = getStudentName()
cmd.CommandText = "SELECT * FROM students WHERE name = ?"
cmd.Parameters.Add(s)
cmd.Execute()

ou, Microsoft SQL Server utilise des paramètres nommés, ce qui améliore la lisibilité et la clarté:

cmd.text = "sélectionner thinga from tablea where thingb = @varname" cmd.parameters.addwithvalue ("@ varname", 7) result = cmd.execute ()
 
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