コンテンツへスキップ
uencoder

Content Security Policy

Content Security Policy (CSP) とは、HTTP ヘッダーを通じて、ページがリソースを読み込み元としてよいソースのホワイトリストを宣言する仕組みであり、XSS とコンテンツインジェクション対策の中核である。

目的

ホワイトリストによってリソースの読み込み元を制限し、注入された悪意あるスクリプトの実行を元から断つ。

メカニズム

Content-Security-Policy ヘッダーは、default-src(既定)、script-src(スクリプト)、style-src(スタイル)、img-src(画像)、connect-src(fetch/XHR)などのディレクティブを含む。値には 'self'、ドメイン、nonce、ハッシュを指定できる。report-uri は違反の報告先を定め、厳格な CSP では nonce と strict-dynamic を組み合わせる。

ユースケース

  • XSS 攻撃への防御
  • サードパーティスクリプトの制限
  • インラインスクリプトの制御
  • 違反レポートの監視

例

  • 入力
    script-src 'self' 'nonce-abc123'
    Output
    Only same-origin + nonce scripts can execute

    Whitelist

よくあるエラー

CSP includes unsafe-inline, weakening protection
Replace unsafe-inline with a nonce or hash

関連用語

References