Heim >Datenbank >MySQL-Tutorial >Wie kann ich Parameter in SQL-LIKE-Anweisungen korrekt verwenden, um SQL-Injection zu verhindern?
Verwenden von Parametern in LIKE-Anweisungen für SQL
Problemstellung:
Beim Erstellen einer Suche Funktion ist eine Abfrage mithilfe von Parametern zur Verhinderung von SQL-Injection-Angriffen implementiert:
SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')
Dies ist jedoch der Fall Die Abfrage gibt keine Ergebnisse zurück.
Antwort:
Parameter können effektiv in LIKE-Anweisungen verwendet werden, um SQL-Injection-Angriffe zu verhindern. Die in der ursprünglichen Abfrage verwendete Syntax ist jedoch falsch.
Korrigierte Syntax:
Die korrekte Syntax zur Verwendung von Parametern mit der LIKE-Anweisung lautet:
SELECT * FROM compliance_corner WHERE (body LIKE @query) OR (title LIKE @query)
In diesem Fall ist der Parameter als „@query“ definiert und sein Wert sollte mithilfe eines parametrisierten Parameters zugewiesen werden Abfrage.
Beispiel in VB.NET:
Dim cmd As New SqlCommand( "SELECT * FROM compliance_corner" _ + " WHERE (body LIKE @query )" _ + " OR (title LIKE @query)") cmd.Parameters.Add("@query", "%" + searchString + "%")
Das obige ist der detaillierte Inhalt vonWie kann ich Parameter in SQL-LIKE-Anweisungen korrekt verwenden, um SQL-Injection zu verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!