Heim >Datenbank >MySQL-Tutorial >Wie kann ich Parameter in SQL-LIKE-Anweisungen korrekt verwenden, um SQL-Injection zu verhindern?

Wie kann ich Parameter in SQL-LIKE-Anweisungen korrekt verwenden, um SQL-Injection zu verhindern?

Linda Hamilton
Linda HamiltonOriginal
2024-12-27 07:38:14197Durchsuche

How Can I Correctly Use Parameters in SQL LIKE Statements to Prevent SQL Injection?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn