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

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

Linda Hamilton
リリース: 2024-12-27 07:38:14
オリジナル
197 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート