FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER
基本情報技術者の問題解説
問題
A社が運営する掲示板サイトでは,利用者が投稿した本文を,加工せずそのままHTMLとして画面に出力している。脆弱性診断で,投稿本文にスクリプトを含めると,その投稿を閲覧した別の利用者のブラウザ上でスクリプトが実行され,ログイン中のセッション情報が外部へ送信され得ることが指摘された。開発担当のBさんが対策を検討している。
対策として,最も適切なものはどれか。
- ア 投稿本文の文字数を必ず偶数にそろえる。
- イ 投稿者のIPアドレスを投稿の隣に表示する。
- ウ 本文を画面へ出力する際に,HTMLの特殊文字をエスケープ処理する。
- エ サイト全体の通信からTLSを外して動作を軽くする。
- オ 掲示板のデータベースの表名を分かりにくい名前に変更する。
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲
正解と解説
正解:本文を画面へ出力する際に,HTMLの特殊文字をエスケープ処理する。
正解:ウ
状況の整理:原因は「投稿本文を加工せずHTMLとして出力している」こと。本文中の<script>などがそのままタグとして解釈され,閲覧者のブラウザで実行される。これがクロスサイトスクリプティング(XSS)。
なぜウか:出力時に<や>などをエスケープ(< などの実体参照へ変換)すれば,本文は「タグ」ではなく「ただの文字」として表示され,スクリプトが実行されなくなる。XSSの基本対策。
誤答の理由:ア(文字数)・イ(IP表示)は実行可否に無関係。エ(TLS除去)は通信の暗号化を弱めるだけで,むしろ別のリスクを増やす。オ(表名変更)はSQL側の隠蔽でXSSとは無関係。
読み解きのコツ:「入力をそのままHTMLとして出力」はXSSの典型。出力時のエスケープを選ぶ。
この問題について
公開問題・サンプル問題のセキュリティ事例形式(A社シナリオ+もっともらしい誤答)を参考にした独自問題です。本文・選択肢・解説は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。