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

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

DDD
リリース: 2024-12-27 13:54:12
オリジナル
255 人が閲覧しました

How Can I Safely Use Parameters with the LIKE Statement in SQL to Prevent Injection Attacks?

SQL クエリでの LIKE ステートメントでのパラメータの使用と SQL インジェクションの防止

データベース クエリでは、パラメータの使用は悪意のある SQL を防ぐための重要な習慣です注射攻撃。ただし、LIKE ステートメントを使用する場合は、構文に関する特定の考慮事項が発生します。

質問: LIKE ステートメントでパラメーターを使用することは可能ですか?可能であれば、どのようにすればよいですか?

回答: はい、LIKE ステートメントでパラメーターを使用できます。ただし、文字列の連結を適切に処理することが重要です。

パラメータ化された LIKE ステートメントの構文:

SELECT * FROM table_name WHERE (column_name LIKE @parameter)

でのパラメータの使用VB.NET:

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

cmd.Parameters.Add("@query", "%" + searchString + "%")
ログイン後にコピー

説明:

  • LIKE ステートメントは、本文またはタイトル列の値を指定されたパラメーター @ と比較します。 query.
  • @query パラメータが宣言され、その値は「%」記号を含めて動的に構築されます。ワイルドカード。
  • パラメータを使用すると、挿入された文字列がリテラル値として扱われ、悪意のあるコードとして実行されないようにすることで、SQL インジェクション攻撃を防ぐことができます。

例クエリ:

SELECT * FROM compliance_corner WHERE (body LIKE '%max%') OR (title LIKE '%max%')
ログイン後にコピー

このクエリは、本文またはタイトル列に部分文字列が含まれるすべてのレコードを取得します。 「最大」。

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

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