FE Study
FE Study メニュー

学習記録はこのブラウザー内に保存されます。

ホーム問題を解く
ログイン不要・無料で学習

ONE QUESTION, ONE STEP

XSSを学ぼう

選んで、確かめて、理解する。焦らず進めましょう。

科目Bセキュリティ標準
QUESTION 65

社内掲示板は投稿本文を保存し、閲覧時にHTMLの本文領域へ文字列連結して表示している。投稿者が入力した文字列がHTMLタグとして解釈され、他の利用者のブラウザで意図しないスクリプトが動いた。本文は装飾なしの文字として表示できればよい。原因に直接対応する修正はどれか。URL属性やJavaScriptの中へ投稿本文を埋め込む処理はない。

出典:本サイト オリジナル教材(2026年)

本サイトで独自に作成。IPAの試験問題からの転載ではありません。

公開日:

解答を一つ選んでください

選択肢を選んで、答え合わせをしましょう。

回答せずに正解・解説を確認する

正解:イ 投稿本文をHTMLとして解釈させず、HTMLの本文領域に適したエスケープ又は安全なテキスト挿入APIで表示する

この表示だけでは、回答数や正答率は変わりません。

解説

保存された入力が閲覧時に実行可能なHTMLとして解釈されるのが、この事例の問題です。本文を文字として扱い、HTML本文の文脈に合うエスケープやテキスト挿入を使えば、入力中のタグを表示用の文字にできます。保存時のSQL対策とは別の境界を守る必要があります。

ア

SQLのパラメータ化はSQLインジェクション対策です。ブラウザでHTMLとして解釈される問題は残ります。

イ

装飾不要という要件のもとで、入力を実行可能なHTMLにしない表示方法が直接の対策です。

ウ

認証済みであっても、投稿内容を実行可能なコードとして信頼してよいことにはなりません。

エ

符号化を戻してからHTMLとして挿入すれば、元と同じ解釈が起きます。

関連知識

これは保存型XSSの事例です。必要な処理は出力先の文脈によって異なります。HTML本文、属性、URL、JavaScriptでは同じエスケープを使い回せません。装飾を許可する場合には、許可する要素や属性を限定する別の設計が必要です。

間違えやすいポイント

入力時に一度処理すれば、どこへ表示しても安全、と考えないこと。どの文脈へ出力するかを確認します。CSPなど追加の防御だけで安全な出力処理を省略しません。

覚え方

入力はデータ。表示先の文脈に合わせて扱う。

実務での意味

コメント、検索結果、プロフィール名など利用者が作る文字列について、表示コンポーネントが安全なテキスト挿入を使うかをコードレビューします。

解説:本サイト編集部によるオリジナル文章

この問題の前後に、セキュリティの基礎知識ガイドで、 仕組み・比較・解き方を確認できます。 手順を確かめたい方は不審なログインを受けて、証拠保全・封じ込め・復旧を組み立てるの実習へ。 この問題の誤りを報告する(GitHub)。問題IDとURLを入力した下書きが開きます。自動投稿は行いません。 投稿は公開されるため、氏名・住所・メールアドレス・学習記録は記入しないでください。 詳しくはお問い合わせ窓口をご覧ください。