基本情報技術者試験 過去問解説

プレースホルダとは?基本情報技術者試験 令和4年度 科目A 問36を解説

基本情報技術者試験 令和4年度 科目A 問36は、プレースホルダに関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。

問題文

SQL インジェクション攻撃による被害を防ぐ方法はどれか。

この問題の出題ポイント

  • プレースホルダの定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
  • 関連タグ: 攻撃手法、マークアップ言語。

選択肢

  1. 入力された文字が,データベースへの問合せや操作において,特別な意味をもつ文字として解釈されないようにする。正解
  2. 入力にHTMLタグが含まれていたら,HTMLタグとして解釈されない他の文字列に置き換える。
  3. 入力に上位ディレクトリを指定する文字列(../)が含まれているときは受け付けない。
  4. 入力の全体の長さが制限を超えているときは受け付けない。

正解

: 入力された文字が,データベースへの問合せや操作において,特別な意味をもつ文字として解釈されないようにする。

解説

SQL インジェクション対策の本命は、入力された特殊文字('や;)をリテラルとして扱い、SQL の構文として解釈させない仕組み(プレースホルダ・エスケープ)です。アが正解。

なぜ他の選択肢が違うのか

  • ア(正解)

    特別な意味を持つ文字として解釈させない、SQL インジェクションの最も有効な対策で正解です。

  • HTML タグの置換は XSS(クロスサイトスクリプティング)対策で、SQL インジェクションとは異なります。

  • ../ の制限はパストラバーサル攻撃対策で、SQL インジェクションとは別です。

  • 入力長制限はバッファオーバーフロー対策に近く、SQL 構文の解釈問題は防げません。

解き方の整理

プレースホルダの問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。

関連問題

前後の問題

令和4年度 科目A の関連する問題

復習を続ける

間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。