CSP: Content Security Policy


ドキュメント


ブラウザ標準の機能

ページに読み込むリソースの提供元(ソース)を制限できる

できることの例


レスポンスヘッダContent-Security-Policy

HTMLファイルをレスポンスの際

ポリシー

ディレクティブ 値1 値2 ..

Content-Security-Policy: connect-src 'none' example.com

複数のポリシー

Content-Security-Policy: connect-src 'none'; connect-src example.org

-src系ディレクティブ

主なディレクティブ

主な値

ドメインなど指定

同一オリジンに限定: 'self'

すべて不許可: 'none'

危険なもの


default-src

デフォルトで制限

Content-Security-Policy: default-src 'self' *.example.com

script-src

乱数やハッシュでスクリプトソースを指定

'nonce-ノンス'

Content-Security-Policy: script-src 'nonce-12345'
<script nonce="12345">console.log(true)</script>

'アルゴリズム-ハッシュ'

<script>console.log(true)</script>
# opensslで計算する例
echo -n 'console.log(true)' | \
  openssl dgst -sha256 -binary | base64 -w 0
Content-Security-Policy: script-src 'sha256-/lAtxI6iGUPFOmMRpckRAtf/SgqqI/g/asGLZ/qQnTk='

その他のディレクティブ

form-action

frame-ancestors

base-uri