Spec-Zone.ru › HTTP

Политика ресурсов между источниками

Политика ресурсов между источниками (CORP)

Политика ресурсов между источниками — это политика, задаваемая Cross-Origin-Resource-Policy HTTP-заголовком, которая позволяет веб-сайтам и приложениям включать защиту от определённых запросов из других источников (например, отправляемых с помощью таких элементов, как <script> и <img>), чтобы снизить риск спекулятивных атак по сторонним каналам, таких как Spectre, а также атак с включением межсайтовых скриптов. CORP — это дополнительный уровень защиты сверх стандартной политики одного источника.

Примечание: Политика действует только для запросов no-cors, которые по умолчанию отправляются для методов и заголовков, разрешённых CORS.

Поскольку эта политика задаётся с помощью заголовка ответа, фактический запрос не блокируется — вместо этого браузер предотвращает утечку результата, удаляя тело ответа.

Использование

Примечание: Из-за ошибки в Chrome установка Cross-Origin-Resource-Policy может нарушить отображение PDF-файлов, из-за чего посетители не смогут читать некоторые PDF-файлы дальше первой страницы. Соблюдайте осторожность при использовании этого заголовка в рабочей среде.

Веб-приложения задают политику ресурсов между источниками с помощью HTTP-заголовка ответа Cross-Origin-Resource-Policy, который принимает одно из трёх значений:

same-site

Ресурс могут читать только запросы с того же сайта.

Предупреждение: Этот вариант менее безопасен, чем проверка источника. Алгоритм проверки того, принадлежат ли два источника одному сайту определён в стандарте HTML и включает проверку регистрируемого домена.

same-origin

Ресурс могут читать только запросы с того же источника (то есть с той же схемой, хостом и портом).

cross-origin

Ресурс могут читать запросы из любого источника (как с того же сайта, так и с другого). Это полезно при использовании COEP (см. ниже).

Cross-Origin-Resource-Policy: same-site | same-origin | cross-origin

При проверке политики ресурсов между источниками, если заголовок задан, браузер будет отклонять запросы no-cors, отправленные из другого источника или с другого сайта.

Связь с политикой встраивания ресурсов между источниками (COEP)

HTTP-заголовок ответа Cross-Origin-Embedder-Policy, если он применяется к документу, позволяет требовать, чтобы вложенные ресурсы либо находились на одном источнике с документом, либо содержали HTTP-заголовок ответа Cross-Origin-Resource-Policy, указывающий на то, что они допускают встраивание. Именно поэтому существует значение cross-origin.

История

Изначально эта концепция была предложена в 2012 году (как заголовок From-Origin), но во втором квартале 2018 года её возродили и реализовали в Safari и Chromium.

В начале 2018 года были раскрыты две аппаратные уязвимости по сторонним каналам, известные как Meltdown и Spectre. Эти уязвимости позволяли раскрывать конфиденциальные данные из-за состояния гонки, возникавшего при спекулятивном выполнении, предназначенном для повышения производительности.

Политика ресурсов между источниками была разработана как прямой способ блокировать нежелательные междоменные запросы no-cors. Это эффективная защита от атак, подобных Spectre: браузер удаляет тело указанных ответов до того, как злоумышленник сможет получить к ним доступ.

Спецификации

Спецификация
Fetch>
# cross-origin-resource-policy-header>

Совместимость с браузерами

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS
Cross-Origin_Resource_Policy
73["До версии 75 загрузка файлов с этим заголовком в Chrome завершалась с ошибкой. См. ошибку 41452948.", "В версиях с 80 по 85 встроенные линейные PDF-файлы с этим заголовком отображались неправильно. См. ошибку 40127935. Начиная с версии 86 частичная загрузка PDF-файлов отключена."]
79 74
60["До версии 62 загрузка файлов с этим заголовком в Opera завершалась с ошибкой. См. ошибку 41452948.", "В версиях с 67 по 85 встроенные линейные PDF-файлы с этим заголовком отображались неправильно. См. ошибку 40127935. Начиная с версии 72 частичная загрузка PDF-файлов отключена."]
12
73["До версии 75 загрузка файлов с этим заголовком в Chrome Android завершалась с ошибкой. См. ошибку 41452948.", "В версиях с 80 по 85 встроенные линейные PDF-файлы с этим заголовком отображались неправильно. См. ошибку 40127935. Начиная с версии 86 частичная загрузка PDF-файлов отключена."]
79
52["До версии 54 загрузка файлов с этим заголовком в Opera Android завершалась с ошибкой. См. ошибку 41452948.", "В версиях с 57 по 85 встроенные линейные PDF-файлы с этим заголовком отображались неправильно. См. ошибку 40127935. Начиная с версии 61 частичная загрузка PDF-файлов отключена."]
12 11.0
73["До версии 75 загрузка файлов с этим заголовком в WebView Android завершалась с ошибкой. См. ошибку 41452948.", "В версиях с 80 по 85 встроенные линейные PDF-файлы с этим заголовком отображались неправильно. См. ошибку 40127935. Начиная с версии 86 частичная загрузка PDF-файлов отключена."]
12

См. также

  • Cross-Origin-Resource-Policy HTTP-заголовок

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Cross-Origin_Resource_Policy

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API