
基本情報技術者試験基礎・応用
条件を読む・根拠を説明する
SQL文と入力値の分離
条件を整理し、答えを選んでから解き方を確認しましょう。
利用者の検索語をSQL文字列へ連結している。SQLインジェクションの根本対策として適切なのはどれか。
答え・解き方を読む
プレースホルダを使い入力値をバインドする
考える順序
- 1入力をSQL構文の一部として解釈させない
- 2文の構造と値を分離して扱う
- 3パラメータ化された呼出しを全ての該当箇所へ適用
選択肢ごとの理由
- 比較 · シングルクォート1文字だけを削除して全SQLを安全にできる
SQLの文脈は多様で特定文字の削除だけでは構文混入を安全に防げません。
- 正解 · プレースホルダを使い入力値をバインドする
入力をSQL構文の一部として解釈させない。文の構造と値を分離して扱う。パラメータ化された呼出しを全ての該当箇所へ適用。
- 比較 · SQLエラーを利用者へ表示しなければ根本的に解消できる
エラー抑制は補助対策でありSQLの構造へ入力が混ざる問題を解消しません。
- 比較 · ブラウザ側の入力チェックだけでSQL構文の混入を防ぐ
ブラウザ側の検査を経由しない要求もあるので根本対策になりません。
入力をSQLの命令として扱わせない
検索語をSQLの文字列へ直接つなぐと、入力が命令の一部として解釈される原因になります。プレースホルダは、SQLの構造と、そこへ渡す値を分けるために使います。
一つの検索画面を直しても、ほかの箇所に文字列連結が残れば対策は不十分です。IPAは静的プレースホルダを優先する考え方も示しています。入力文字数の制限やエラーメッセージの非表示だけでは、この構造上の問題は解消しません。
この解説の参考資料
資料の参照範囲:プレースホルダによる根本対策と静的バインドの位置付け。
資料本文の照合:2026年11月5日(AI支援)。
関連する要点をまとめて読む
この問題は複数資格で扱う共通知識です。共通知識の解説ページを見る →