概要
Content-Security-Policy (CSP)に関する説明
Content-Security-Policy (CSP)とは
ブラウザに対して「どのソースからコンテンツを読み込んでいいか」を詳細に設定できるレスポンスヘッダのこと。
CSPを適切に設定できれば、外部の悪意あるスクリプトの実行を防げる。
目的
- XSSやiframeを使用したクリックジャッキングの防止
- 信頼できるスクリプト、スタイルシート、画像、iframeなどのみを読み込ませたい
- 外部からの不要なコード実行を制御する
基本構文
Content-Security-Policy: {ディレクティブ}{値}; {ディレクティブ}{値}; ・・・
主なディレクティブ
-
default-src
- デフォルトで許可するコンテンツのソース
- 例:
'self'
(自サイトのみ)
-
script-src
- JSの許可ソース
- 例:
'self'
'http://cdn.example.com'
(自サイトとCDNのみ)
-
style-src
- CSSの許可ソース
-
img-src
- 画像の許可ソース
-
connect-src
- ブラウザから外部にデータを送るような通信先を制限するCSP設定。外部APIやWebSocketの利用範囲を限定するために使用する
-
frame-ancestors
- 自サイトが、どこからiframeで埋め込められるかを制御する(※自サイトがどのサイトを埋め込むか、の制御では無い)
- 例:
'self'
(自サイトのみ) - 例:
'none'
(禁止)