応用情報技術者ブラウザ・セッションとAPIの防御オリジナル・公式資料照合難易度★★★★☆

サーバー生成HTMLで、必要なインラインscriptだけをnonce型CSPで許可したい。攻撃者は以前の応答HTMLを閲覧でき、一部の文字列注入も試みる。アプリが全応答で同じ公開済みnonceを使っている。適切な改善はどれか。

A
公開済みnonceを1日1回だけ変更し、同じ日の全応答ではその値を安全に共用できるとする

同じ日の先行応答からnonceを知った攻撃者に再利用され得ます。予測困難な値を応答ごとに新しく生成する必要があります。

B
nonce-sourceを外し、script-srcを'unsafe-inline'だけへ置き換えてnonceなしのインラインscriptも許可する

nonce-sourceを外してunsafe-inlineだけにすると、信頼したscriptだけを選ぶ目的を損ないます。nonce-sourceに対応するCSPでは、両者を併記した場合にunsafe-inlineが無視される規則があるため、単に追加する場合とは区別します。

C
攻撃者が注入したHTMLにもサーバーが一律でnonce属性を付与する

注入されたscriptにも正しいnonceを配ると、攻撃者のコードを許可してしまいます。信頼するテンプレートへ限定します。

D
予測困難なnonceを応答ごとに新しく生成し、信頼するscriptだけへ付ける。文脈に応じた出力エスケープ等も継続する★ 正解

nonceの新規生成と付与先の限定が必要です。CSPを追加しても文字列注入を防ぐ出力処理を省略しません。

解説

nonceは応答ごとの予測困難な値として、CSPヘッダーと信頼するscriptを対応させます。固定値の再利用や注入HTMLへの自動付与は防御を弱めます。

根拠資料・確認情報

対応範囲:2026年度 応用情報技術者試験

資料確認日:2026-10-28

同じレッスンの問題

アプリで毎日学習しよう

ゲーミフィケーションで 応用情報技術者 合格を目指す。無料・課金なし。

更新: 2026/10/28