セキュリティ
令和6年度 基本情報技術者試験 科目A 公開問題 問10
SQL インジェクションの対策として,有効なものはどれか。
- ア URL を Web ページに出力するときは,“http://”や“https://”で始まる URL だけを許可する。
- イ 外部からのパラメータで Web サーバ内のファイル名を直接指定しない。
- ウ スタイルシートを任意の Web サイトから取り込めるようにしない。
- エ プレースホルダを使って命令文を組み立てる。
出典:令和6年度 基本情報技術者試験 科目A 公開問題 問10
答えと解説を見る
正解:エ
覚える知識
SQLインジェクション対策(プレースホルダ)
プレースホルダは SQL 文の骨格と値を分けて処理させ、入力値による SQL の改変を防ぐ。
この問題で必要なこと
SQL 文を文字列連結で組み立てず、プレースホルダ(バインド変数)に値を後から割り当てることで、入力が SQL 構文として解釈されるのを防ぐ。
ひっかけ
ア、イ、ウは他の攻撃(不正な URL スキーム経由の攻撃、ディレクトリトラバーサル、スタイルシートを悪用する攻撃)の対策で、SQL とは無関係である。
この知識の出題:本試験系 1 回・免除試験 8 回(公開問題での観測値)