FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER
基本情報技術者の問題解説
問題
A社のFAQサイトでは,管理者が回答本文を登録し,利用者画面に表示している。本文には一部HTMLタグを許可しているが,属性値やURLの検査が不十分で,リンク属性にスクリプトを仕込むと閲覧者のブラウザで実行できることが分かった。
対策として,最も適切なものはどれか。
- ア 本文全体をBase64でエンコードしてDBに保存する。
- イ 管理者だけが登録できるため,HTMLの検査は行わない。
- ウ 出力時に文脈に応じたエスケープを行い,許可タグ・属性・URLスキームをサニタイズで限定する。
- エ FAQ画面の背景色を変更する。
- オ CookieにHttpOnlyを付ければHTML出力の検査は不要である。
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲
正解と解説
正解:出力時に文脈に応じたエスケープを行い,許可タグ・属性・URLスキームをサニタイズで限定する。
正解:ウ
HTMLを一部許可する要件では,許可するタグ・属性・URLスキームを限定するサニタイズと,表示文脈に応じたエスケープが必要である。
Base64保存は表示時に復号すれば危険が戻る。HttpOnlyは被害軽減策であり,XSSの実行自体を防ぐものではない。
Hardでの見抜き方:HTMLを一部許可する場合,単純な入力禁止ではなく,表示文脈ごとのエスケープと許可リスト型サニタイズを組み合わせる。Cookie属性は被害軽減策で,画面上のスクリプト実行自体を止めるものではない。
この問題について
公開問題・サンプル問題のセキュリティ事例形式(A社シナリオ+もっともらしい誤答)を参考にした独自問題です。本文・選択肢・解説は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。