応用情報技術者ブラウザ・セッションと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
同じレッスンの問題
問題 1
利用者のブラウザはexample.comを一度も訪れたことがなく、同ドメインや親ドメインのHSTS情報を持たず、preload登録もない。ブラウザ独自のHTTPS優先機能は無効で、利用者はhttp://example.comを開く。サーバーはHTTPSへ転送し、HTTPS応答にHSTSを付ける。初回接続について正しいのはどれか。
問題 3
ログインCookieにSameSite=Laxを明示したサイトが、GET /account/deleteでアカウントを削除している。ログイン中の利用者が、別サイトのリンクからこのURLへトップレベルで移動できる。サーバーに追加のCSRF検証はない。適切な評価と修正はどれか。
問題 4
端末ごとに異なるsidを含む署名付きアクセストークンと更新トークンを発行するAPIがある。端末Aのログアウト後は、盗まれたAの未期限切れトークンによる以後の認証も拒否し、端末Bのログインは維持したい。現在は署名と有効期限だけを検証している。最も適切な設計はどれか。
問題 5
OIDCを使うSPAのclient_idはspa-client、別の業務APIの識別子はorders-apiである。APIはRFC 9068形式のJWTアクセストークンを受け入れる設計である。SPA向けIDトークン(aud=spa-client)がAPIへ送られ、署名・発行者・期限は正しい。APIの判断はどれか。