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