CSP Embedded Enforcementとは

W3Cで「Content Security Policy: Embedded Enforcement」という仕様が公開された(First Public Working Draft)。ちょっと読んでみた。


現在はCSPを利用しても、iframeで提供されるサードパティのウィジェットに制限を設けることは出来ませんでした。そこで、埋め込む側が、iframeを使用していてもサードパティにCSPを付与するように提案出来るようにする仕様のようだ。(提案するというと語弊がある気がしてきた。)


iframeタグにcsp属性でpolicyを記述しておくと、ユーザエージェントがそのiframeページを読み込む際にEmbedding-CSPヘッダを付けてページを要求し、望むCSPを伝えることが出来る。


(どのような脅威を想定してるのか、わからず少しイメージがわきづらい。。。)

概要


  • 1. ユーザは、a-example.comのページを要求する
  • 2. a-example.comのページにはb-example.comをiframeで読み込むようになっている。そのiframeにはcsp属性でa-xample.comがそのページに対して望むpolicyが記述されている。
  • 3. ユーザエージェントは、iframeのページをb-example.comに要求する。この時、HTTPリクエストヘッダに「Embedding-CSP」を付加する。Embedding-CSPヘッダの値は、iframeのcsp属性の値である。
  • 4. b-example.comはEmbedding-CSPヘッダを確認し、もし問題なければ要求どおりのCSPヘッダをレスポンスに付加する。また、ポリシーディレクティブを追加で指定することも出来る。


ユーザエージェントは4.で望まれたCSPが付与されてなかったらレスポンスをブロックする挙動のようだ。