コンテンツへスキップ
uencoder

CSP

CSP(Content Security Policy)は、HTTP ヘッダーでページが読み込めるリソースのオリジンを宣言し、XSS やデータ注入の攻撃面を縮める。

目的

ページがリソースを読み込めるオリジンをホワイトリスト化することで、XSS とコンテンツ注入を防ぐ。

メカニズム

Content-Security-Policy ヘッダーはディレクティブを宣言する: default-src はデフォルトのソース、script-src はスクリプトのソース、style-src はスタイルのソースを定める。nonce や hash でインラインスクリプトを許可でき、report-uri は違反を報告する。厳格な CSP は nonce と strict-dynamic を組み合わせる。

ユースケース

  • XSS の緩和
  • サードパーティスクリプトの制限
  • インラインスクリプトの制御
  • 違反レポートの収集

例

  • 入力
    script-src 'self' 'nonce-abc'
    Output
    Only same-origin and nonce-tagged scripts are allowed

    Whitelisting

よくあるエラー

An overly strict CSP breaks page functionality
Observe first with Report-Only mode

関連用語

References