ホームページ >データベース >mysql チュートリアル >SQL インジェクションを防ぐために SQL LIKE ステートメントでパラメーターを正しく使用するにはどうすればよいですか?

SQL インジェクションを防ぐために SQL LIKE ステートメントでパラメーターを正しく使用するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-27 07:38:14195ブラウズ

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

SQL の LIKE ステートメントでのパラメーターの使用

問題ステートメント:

検索の作成中関数、SQL インジェクション攻撃を防ぐためにパラメーターを使用するクエリは次のとおりです。実装:

SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')

ただし、このクエリは結果を返しません。

答え:

パラメータは LIKE ステートメントで効果的に使用できます。 SQL インジェクション攻撃を防ぐため。ただし、元のクエリで使用されている構文は正しくありません。

修正された構文:

LIKE ステートメントでパラメーターを使用するための正しい構文は次のとおりです:

SELECT * FROM compliance_corner WHERE (body LIKE @query) OR (title LIKE @query)

この場合、パラメータは「@query」として定義されており、その値はパラメータ化されたメソッドを使用して割り当てる必要があります。 query.

VB.NET の例:

Dim cmd As New SqlCommand(
"SELECT * FROM compliance_corner" _
+ " WHERE (body LIKE @query )" _
+ " OR (title LIKE @query)")

cmd.Parameters.Add("@query", "%" + searchString + "%")

以上がSQL インジェクションを防ぐために SQL LIKE ステートメントでパラメーターを正しく使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。