From 9a1889b0119946f327354681173e7a691ef09f24 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Thu, 13 Jan 2022 00:26:32 +0900 Subject: 2021/09/01 時点の英語版に基づき新規翻訳 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../headers/cross-origin-embedder-policy/index.md | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 files/ja/web/http/headers/cross-origin-embedder-policy/index.md diff --git a/files/ja/web/http/headers/cross-origin-embedder-policy/index.md b/files/ja/web/http/headers/cross-origin-embedder-policy/index.md new file mode 100644 index 0000000000..87fb834659 --- /dev/null +++ b/files/ja/web/http/headers/cross-origin-embedder-policy/index.md @@ -0,0 +1,85 @@ +--- +title: Cross-Origin-Embedder-Policy +slug: Web/HTTP/Headers/Cross-Origin-Embedder-Policy +tags: + - HTTP + - HTTP Header + - Reference + - Response Header + - header +browser-compat: http.headers.Cross-Origin-Embedder-Policy +translation_of: Web/HTTP/Headers/Cross-Origin-Embedder-Policy +--- +{{HTTPSidebar}} + +HTTP の **`Cross-Origin-Embedder-Policy`** (COEP) レスポンスヘッダーは、([CORP]() または [CORS](/ja/docs/Web/HTTP/CORS) を使用して)文書に明示的に許可を与えていない外部オリジンのリソースが、文書に読み込まれることを防止するものです。 + + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +## 構文 + +``` +Cross-Origin-Embedder-Policy: unsafe-none | require-corp +``` + +### ディレクティブ + +- `unsafe-none` + - : これが既定値です。 CORS プロトコルや {{HTTPHeader("Cross-Origin-Resource-Policy")}} ヘッダーで明示的に許可していなくても、文書が外部オリジンのリソースを取得することを許可します。 +- `require-corp` + - : 文書は、同じオリジンからのリソース、または他のオリジンからロード可能であると明示的にマークされたリソースのみをロードすることができます。 + 外部オリジンのリソースが CORS に対応している場合、 COEP でブロックされずに読み込むには、[`crossorigin`](/ja/docs/Web/HTML/Attributes/crossorigin) 属性や {{HTTPHeader("Cross-Origin-Resource-Policy")}} ヘッダーを使用する必要があります。 + +## 例 + +### 一部の機能はクロスオリジン分離に依存する + +{{jsxref("SharedArrayBuffer")}} オブジェクトや {{domxref("Performance.now()")}} のような特定の機能には、文書に `require-corp` 値を設定した COEP ヘッダーがある場合のみ、スロットルなしタイマーを使用してアクセスすることができます。 + +``` +Cross-Origin-Embedder-Policy: require-corp +Cross-Origin-Opener-Policy: same-origin +``` + +また、 {{HTTPHeader("Cross-Origin-Opener-Policy")}} ヘッダーも同様に設定する必要がありますので、参照してください。 + +クロスオリジンの分離に成功したかどうかを確認するには、ウィンドウとワーカーのコンテキストで利用可能な [`crossOriginIsolated`] (/ja/docs/Web/API/crossOriginIsolated) プロパティで検査してください。 + +```js +if (crossOriginIsolated) { + // Post SharedArrayBuffer +} else { + // Do something else +} +``` + +### CORS による COEP の遮断の回避 + +`require-corp` を使用して COEP を有効にし、読み込む必要があるクロスオリジンリソースがある場合、それは [CORS](/ja/docs/Web/HTTP/CORS) に対応する必要があり、 COEP によるブロックを回避するには、他のオリジンからロード可能であると明示的にマークする必要があります。例えば、サードパーティーサイトから読み込むこの画像には、[`crossorigin`](/ja/docs/Web/HTML/Attributes/crossorigin) 属性を使用することができます。 + +```html + +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- {{httpheader("Cross-Origin-Opener-Policy")}} -- cgit v1.2.3-54-g00ecf