問題
SQL インジェクション攻撃への最も有効な対策はどれか。
選択肢
- 1クライアント側 JavaScript で入力値をエスケープする
- 2プレースホルダ(パラメタライズドクエリ/バインド変数)を用いた SQL 実行
- 3データベース全体を読み取り専用にする
- 4SELECT 文のみ使用し UPDATE を避ける
正解
2. プレースホルダ(パラメタライズドクエリ/バインド変数)を用いた SQL 実行
詳しい解説を見る解説を閉じる
解説
SQL インジェクションへの最も根本的かつ有効な対策はプレースホルダ(バインド機構)の利用である。SQL 文の構文と値が分離されるため、悪意ある入力が SQL として解釈されることを防げる。クライアント側エスケープはバイパス可能で対策にならない。WAF や入力サニタイズは多層防御の一部だが、本質的解決策ではない。エラーメッセージの抑止、最小権限の DB ユーザ運用、ストアドプロシージャの活用も併用すべき。OWASP Top 10 で常に上位の脅威。
一問一答
全400問を繰り返し学習