FE SUBJECT A
基本情報技術者 科目Aの問題解説:SQLインジェクションへの対策として最も適切なものはどれか。
問題
SQLインジェクションへの対策として最も適切なものはどれか。
- ア バックアップ媒体を遠隔地に保管する
- イ プレースホルダを用いたSQLのパラメータ化(正解)
- ウ 画像ファイルの解像度を下げる
- エ DBの正規化を第1正規形に留める
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目A範囲
正解と解説
正解:プレースホルダを用いたSQLのパラメータ化
考え方:SQLインジェクションは、入力文字列をSQL文の一部として解釈させ、条件式や命令を差し込む攻撃です。プレースホルダを使うと、入力値はSQL命令ではなく単なるデータとして渡されるため、SQLの構造を変えにくくできます。
誤答の見分け方:遠隔地バックアップは災害対策、画像の解像度変更は容量調整、正規化の制限はDB設計の話で、いずれもSQL文への不正な文字列注入を防ぐ対策ではありません。
押さえるポイント:文字列連結でSQLを組み立てないことが基本です。入力チェックだけに頼るより、パラメータ化クエリで命令部分とデータ部分を分離する、と覚えておくと迷いません。
他の選択肢はなぜ違う?
- アバックアップの遠隔保管は災害・障害対策。入力値を悪用する攻撃そのものは防げない。
- ウ画像の解像度はWeb表示の話で、データベースへの攻撃とは無関係。
- エ正規化は設計の整理術。むしろ第1正規形に「留める」のは設計として不十分で、対策ですらない。
この問題について
IPAが公開するシラバス・試験範囲・公開問題の出題形式を参考にした独自作成問題。公式問題・過去問題の転載ではありません。
公式試験問題、過去問題、公式サンプル問題、市販教材の問題文を転載したものではありません。