Политика Cross-Origin-Opener
Политика Cross-Origin-Opener
Заголовок ответа HTTP Cross-Origin-Opener-Policy (COOP) позволяет гарантировать, что документ верхнего уровня не разделяет группу контекста просмотра с документами из других источников.
COOP изолирует ваш документ, и потенциальные злоумышленники не смогут получить доступ к вашему глобальному объекту, если они откроют его в всплывающем окне, предотвращая набор атак с разных источников, известных как XS-Leaks.
Если документ из другого источника с COOP открывается в новом окне, документ, открывший его, не будет иметь на него ссылки, и свойство window.opener нового окна будет null. Это позволяет вам иметь больший контроль над ссылками на окно, чем rel=noopener, который влияет только на исходящие переходы.
| Тип заголовка | Заголовок ответа |
|---|---|
| Запрещённое имя заголовка | нет |
Синтаксис
Cross-Origin-Opener-Policy: unsafe-none Cross-Origin-Opener-Policy: same-origin-allow-popups Cross-Origin-Opener-Policy: same-origin
Директивы
unsafe-none-
Это значение по умолчанию. Разрешает добавление документа в группу контекста просмотра его открывающего окна, если у открывающего окна сам по себе нет COOP
same-originилиsame-origin-allow-popups. same-origin-allow-popups-
Сохраняет ссылки на вновь открытые окна или вкладки, которые либо не устанавливают COOP, либо исключают изоляцию, установив COOP
unsafe-none. same-origin-
Изолирует контекст просмотра исключительно для документов из того же источника. Документы из других источников не загружаются в одном контексте просмотра.
Примеры
Отдельные функции зависят от изоляции разных источников
Отдельные функции, такие как объекты SharedArrayBuffer или таймеры без ограничения скорости Performance.now(), доступны только если у вашего документа есть заголовок COOP со значением same-origin.
Cross-Origin-Opener-Policy: same-origin Cross-Origin-Embedder-Policy: require-corp
Также необходимо установить заголовок Cross-Origin-Embedder-Policy.
Чтобы проверить, была ли успешна изоляция разных источников, вы можете проверить свойство crossOriginIsolated, доступное для контекстов окон и рабочих процессов:
if (crossOriginIsolated) { // Post SharedArrayBuffer } else { // Do something else }
Спецификации
| Спецификация |
|---|
| HTML Стандарт # the-coop-headers |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | |
Cross-Origin-Opener-Policy |
83 |
83 |
79 |
Нет |
Нет |
15.2 |
Нет |
83 |
79 |
Нет |
15.2 |
13.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-Opener-Policy