Cross-Origin-Resource-PolicyヘッダというのがSafari 12でサポートされるらしい。
もともとは、W3C側でFrom-Originと呼ばれていた仕組みらしいが、Fetch Starndardに入れる議論がされているようだ。
このCross-Origin-Resource-Policyヘッダを用いることで、自分サイトでホストしている画像やJavaScriptなどのリソースをクロスオリジンで他所のサイトで表示・利用されることを防ぐことができる。
https://example.com/img.jpg を<img>タグで呼び出せるのはexample.comのサイトだけで、https://asnokaze.comから<img>タグで画像を埋め込んでも表示することができなくなる。
「Cross-Origin Read Blocking (CORB) とは」でも書いたように、昨今サイドチャネルなどの攻撃によってリソースなどのデータが第三者に読み取られる可能性があるため、それらの攻撃を防ぐのを目的にしている。( Issue参照 )
サイドチャネルを行う目的のサイトで、本人しか見えない画像や、http://localhost/img.pngを読み込まれて、中身を見られたりしたら困るわけだ。
Cross-Origin-Resource-Policyヘッダ
画像やJavaScriptなどのリソースを返すときに、レスポンスヘッダにつける。
Cross-Origin-Resource-Policy: same-origin
(WWDCではヘッダ値はsameと書かれていたが、Fetchの仕様ではsame-origin/same-site)
- same-originは同一オリジンの場合のみ許可される
- same-siteはhttpsかつ同じホスト名の場合のみ許可される
まだ議論中なので、実際どうなるかはわからない