FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER
基本情報技術者の問題解説
問題
B社の問い合わせフォームでは,利用者が入力した氏名やコメントを,管理者が後から確認する管理画面にそのまま表示している。診断で,コメント欄に細工したスクリプトを入力して送信すると,管理者がその内容を管理画面で開いたときにスクリプトが実行され,管理者の操作が乗っ取られる危険があると指摘された。担当者が対策を検討する。
対策として,最も適切なものはどれか。
- ア 管理画面に表示する前に,入力値のHTML特殊文字をエスケープする。
- イ 問い合わせフォームの背景画像を変更する。
- ウ 管理者のディスプレイの輝度を下げる。
- エ コメント欄の入力可能な行数を1行に限定する。
- オ 管理画面のフォントサイズを大きくする。
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲
正解と解説
正解:管理画面に表示する前に,入力値のHTML特殊文字をエスケープする。
正解:ア
状況の整理:利用者が入力した内容が,管理画面で加工されずに表示され,そこでスクリプトが動く。閲覧する人(管理者)のブラウザで実行される蓄積型XSSである。
なぜアか:表示(出力)の直前に特殊文字をエスケープすれば,入力された<script>は文字として表示されるだけになり,実行されない。出力先が管理画面であってもXSS対策の原則は同じ。
誤答の理由:イ(背景画像)・ウ(輝度)・オ(フォントサイズ)は見た目の話で実行可否に無関係。エ(1行制限)は改行を制限するだけで,1行でもスクリプトは書けるため防げない。
読み解きのコツ:XSSは「どこで実行されるか」より「出力時にエスケープしているか」が論点。表示する全箇所でエスケープが必要。
この問題について
公開問題・サンプル問題のセキュリティ事例形式(A社シナリオ+もっともらしい誤答)を参考にした独自問題です。本文・選択肢・解説は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。