本文へスキップ

FE SUBJECT A

基本情報技術者 科目Aの問題解説

テクノロジ系 標準 fe_a_s043_q009

問題

SQLインジェクション対策として最も効果的なものはどれか。

  1. エラーメッセージの詳細表示
  2. 入力文字数の制限
  3. プレースホルダ(バインド変数)を使用したSQL文の組立て
  4. HTTPSの導入
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目A範囲

正解と解説

正解:プレースホルダ(バインド変数)を使用したSQL文の組立て

正解はウ。SQLインジェクションは、入力値をSQL文の一部として不正に解釈させ、データベースを意図しない形で操作する攻撃である。最も効果的な対策は、プレースホルダやバインド変数を用いて、SQL文の構造と入力データを分離することである。

例えば、利用者名をSQL文字列へ直接連結すると、攻撃者の入力がSQL構文として解釈される危険がある。プリペアドステートメントを使えば、入力値はあくまで値として扱われるため、構文を改変されにくい。

イの入力文字数制限やアのエラー表示制御も補助的対策にはなり得るが、根本対策ではない。エのHTTPSは通信路の暗号化であり、SQLの組立て不備は防げない。

この問題について

出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目A範囲

IPAが公開するシラバス・試験範囲・公開問題の出題形式を参考にした独自作成問題。公式問題・過去問題の転載ではありません。

公式試験問題、過去問題、公式サンプル問題、市販教材の問題文を転載したものではありません。

参考範囲: シラバスVer.9.2参考

RELATED

関連問題