Политика внедрения из другого источника
Политика внедрения из другого источника
Заголовок ответа HTTP Cross-Origin-Embedder-Policy (COEP) предотвращает загрузку документом любых ресурсов из другого источника, которые явно не предоставили документу разрешение (используя CORP или CORS).
| Тип заголовка | Заголовок ответа |
|---|---|
| Запрещённое имя заголовка | нет |
Синтаксис
Cross-Origin-Embedder-Policy: unsafe-none | require-corp
Директивы
unsafe-none-
Это значение по умолчанию. Разрешает документу получать ресурсы из другого источника без явного разрешения через протокол CORS или заголовок
Cross-Origin-Resource-Policy. require-corp-
Документ может загружать ресурсы только из того же источника или ресурсов, явно помеченных как загружаемые из другого источника. Если ресурс из другого источника поддерживает CORS, атрибут
crossoriginили заголовокCross-Origin-Resource-Policyдолжны использоваться для загрузки ресурса без блокировки COEP.
Примеры
Определённые функции зависят от изоляции из другого источника
Вы можете получить доступ к определённым функциям, таким как объекты SharedArrayBuffer или Performance.now() с таймерами без ограничений, если у вашего документа есть заголовок COEP со значением require-corp.
Cross-Origin-Embedder-Policy: require-corp Cross-Origin-Opener-Policy: same-origin
См. также заголовок Cross-Origin-Opener-Policy, который также необходимо установить.
Чтобы проверить, была ли успешно выполнена изоляция из другого источника, вы можете проверить свойство crossOriginIsolated, доступное для контекстов window и worker:
if (crossOriginIsolated) { // Post SharedArrayBuffer } else { // Do something else }
Избегание блокировки COEP с помощью CORS
Если вы включили COEP с помощью require-corp и у вас есть ресурс из другого источника, который необходимо загрузить, он должен поддерживать CORS, и вы должны явно пометить ресурс как загружаемый из другого источника, чтобы избежать блокировки от COEP. Например, вы можете использовать атрибут crossorigin для этого изображения с сайта третьей стороны:
<img src="https://thirdparty.com/img.png" crossorigin />
Спецификации
| Спецификация |
|---|
| Стандарт HTML # coep |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | |
Cross-Origin-Embedder-Policy |
83 |
83 |
79 |
Нет |
69 |
15.2 |
86 |
83 |
79 |
59 |
15.2 |
13.0 |
credentialless |
96 |
96 |
Нет |
Нет |
82 |
Нет |
96 |
96 |
Нет |
Нет |
Нет |
17.0 |
См. также
© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy