Open6

CORS / COEP がわからん

hashrockhashrock

CORS関連のHTTPヘッダ多いし読み込み側なのか読まれる側なのかわかんなくて辛い。しかしノーガードというわけには…

というわけで勉強。どっちがどっち問題に関しては下記の記事が明快だった。

https://laboradian.com/coep-coop-corp-cors/

hashrockhashrock

Cross-Origin-Embedder-Policyがrequire-corpなのかsame-originなのかでiframeの表示が可能か決まっているっぽい。しかしこれをsame-originにしてしまうとiframeに対してノーガードになるってことなのかな?

same-originにしてるのにiframeが表示されるのもわからんといえばわからん。少なくとも二つのplaygroundは同一オリジンではなくない?書いてあることと動きがずれてる感じがよくわからないなー。何か例外があるか別のパラメータが関係しているんだろうか。

hashrockhashrock

web.devに日本語版があった。

https://web.dev/i18n/ja/coop-coep/

iframeの場合、CORPとCOEP headerを次のように使用します。Cross Cross-Origin-Resource-Policy: same-origin (またはコンテキストに応じてsame-site 、 cross-origin)と Cross-Origin-Embedder-Policy: require-corp 。

つまり読まれる側のCORPにcross-originを設定すればいいのかな。

same-site, same-origin, etcの違いは下記にある(なんかちょっと見づらい)。

https://web.dev/i18n/ja/same-site-same-origin/

仕事でやりたいことは結局cross-originになりそうかな。

hashrockhashrock

下記でできたっぽい。

  • 読む側:CORP = "require-corp"
  • 読まれる側:COEP = "cross-origin"