Open6
CORS / COEP がわからん
CORS関連のHTTPヘッダ多いし読み込み側なのか読まれる側なのかわかんなくて辛い。しかしノーガードというわけには…
というわけで勉強。どっちがどっち問題に関しては下記の記事が明快だった。
とりあえず下記の二つのplaygroundを使って実験する。Deno Deployは便利だなあ【PR】
Cross-Origin-Embedder-Policyがrequire-corpなのかsame-originなのかでiframeの表示が可能か決まっているっぽい。しかしこれをsame-originにしてしまうとiframeに対してノーガードになるってことなのかな?
same-originにしてるのにiframeが表示されるのもわからんといえばわからん。少なくとも二つのplaygroundは同一オリジンではなくない?書いてあることと動きがずれてる感じがよくわからないなー。何か例外があるか別のパラメータが関係しているんだろうか。
web.devに日本語版があった。
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の違いは下記にある(なんかちょっと見づらい)。
仕事でやりたいことは結局cross-originになりそうかな。
下記でできたっぽい。
- 読む側:CORP = "require-corp"
- 読まれる側:COEP = "cross-origin"
これどうだろう。トライアルか…