Spec-Zone.ru › HTTP

Заголовки: Permissions-Policy-Report-Only

Заголовок Permissions-Policy-Report-Only

Экспериментальная технология: Это экспериментальная технология
Перед использованием в рабочей среде внимательно ознакомьтесь с таблицей совместимости браузеров.

HTTP-заголовок Permissions-Policy-Report-Only ответа предоставляет администраторам веб-сайтов механизм для регистрации нарушений Permissions-Policy без применения этих правил. Это позволяет протестировать и устранить проблемы с политикой разрешений до развертывания политики.

Синтаксис и поведение полностью совпадают с Permissions-Policy, за исключением следующего:

  • Политика не применяется.
  • Объекты отчетов о нарушении политики (PermissionsPolicyViolationReport) имеют значение body.disposition "report" вместо "enforce".

Подробнее см. в разделе Permissions-Policy (большая часть его содержимого не дублируется ниже).

Тип заголовка Заголовок ответа

Синтаксис

# Single directive
Permissions-Policy-Report-Only: <directive>=<allowlist>

# Single directive with reporting endpoint
Permissions-Policy-Report-Only: <directive>=<allowlist>;report-to=<endpoint>

# Multiple directives, with and without server reporting endpoints
Permissions-Policy-Report-Only: <directive>=<allowlist>, <directive>=<allowlist>;report-to=<endpoint>, ...

Примеры

>

Основы использования

Компания SecureCorp Inc. хочет отключить API Geolocation в своем приложении. Прежде чем развернуть политику с помощью Permissions-Policy, она добавляет заголовки Permissions-Policy-Report-Only и Reporting-Endpoints, как показано ниже:

Reporting-Endpoints: geo_endpoint="https://example.com/reports"
Permissions-Policy-Report-Only: geolocation=();report-to=geo_endpoint

Указав geolocation=() в списке источников, компания устанавливает нарушение для любого контекста просмотра, который обращается к геолокации (включая <iframe>s), независимо от источника. Параметр report-to указывает, что отчеты будут отправляться в конечную точку с именем geo_endpoint. Соответствие между geo_endpoint и URL-адресом, на который следует отправлять отчеты, задается в Reporting-Endpoints.

Нарушение происходит, когда страница пытается использовать заблокированную функцию, например:

navigator.geolocation.getCurrentPosition(
  () => {},
  () => {},
);

Данные отчета, отправленные в конечную точку, будут иметь ту же структуру, что и в приведенном ниже примере JSON. Этот отчет аналогичен отчету для Permissions-Policy, за исключением значения body.disposition.

[
  {
    "age": 48512,
    "body": {
      "columnNumber": 29,
      "disposition": "report", // A violation that is reported but not enforced
      "lineNumber": 44,
      "message": "Permissions policy violation: geolocation access has been blocked because of a permissions policy applied to the current document.",
      "featureId": "geolocation",
      "sourceFile": "https://example.com/"
    },
    "type": "permissions-policy-violation",
    "url": "https://example.com/",
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36"
  }
]

Примечание: При сериализации отчетов о нарушениях на стороне сервера Chrome использует policyId вместо featureId в качестве имени функции в body серверного отчета. Объект PermissionsPolicyViolationReport, возвращаемый объектом ReportingObserver, соответствует спецификации.

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

Спецификация
Политика разрешений>
# permissions-policy-report-only-http-header-field>

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

Компьютер Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Internet WebView для Android WebView для iOS
Permissions-Policy-Report-Only 120 120 Нет 106 Нет 120 Нет 80 Нет 25.0 120 Нет

См. также

  • Политика разрешений
  • Document.featurePolicy и FeaturePolicy
  • Content-Security-Policy
  • Referrer-Policy
  • Reporting-Endpoints
  • PermissionsPolicyViolationReport
  • ReportingObserver
  • Reporting API

© 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/Reference/Headers/Permissions-Policy-Report-Only

Spec-Zone.ru

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