TL;DR

Web ページが読み込むリソースの取得元を制御するためのセキュリティポリシー。略して CSP と呼ぶ。

なぜ必要か

CSP を使うと、ブラウザは許可したドメインからのリソースだけを読み込む。これにより、XSS やインジェクション攻撃などのリスクを減らせる。

仕組み

CSP は、HTTP のレスポンスヘッダか、HTML の <meta> で定義する。HTTP レスポンスヘッダでは、Content-Security-Policy ヘッダを使う。

例

Content-Security-Policy: default-src 'self'; img-src *; script-src https://trusted.cdn.com

それぞれのディレクティブの意味は次のとおりである。

  • default-src 'self': すべての種類のリソースを、同じオリジンからだけ読み込む。
  • img-src *: 画像は、どのオリジンからでも読み込める。
  • script-src https://trusted.cdn.com: JavaScript のスクリプトは、https://trusted.cdn.com からだけ読み込める。

関連

出典