Заголовки: Integrity-Policy
Заголовок Integrity-Policy
Ограниченная доступность
Эта функция не входит в Baseline, поскольку она не работает в некоторых наиболее широко используемых браузерах.
Хотите, чтобы эта функция поддерживалась в большем количестве браузеров? Расскажите нам почему.
HTTP-заголовок ответа Integrity-Policy позволяет администраторам веб-сайтов гарантировать, что все ресурсы (определённого типа), загружаемые пользовательским агентом, защищены с помощью проверки целостности подресурсов.
Если задана эта политика, пользовательский агент будет блокировать запросы к указанным назначениям запросов, в которых отсутствуют метаданные целостности, а также не будет выполнять запросы в режиме no-cors. Это помогает защитить загружаемые подресурсы от подмены содержимого.
О нарушениях политики можно сообщать с помощью Reporting API. Отчёты можно получать на странице, для которой действует политика, с помощью ReportingObserver, а также отправлять на конечные точки сервера, заданные в HTTP-заголовке ответа Reporting-Endpoints и выбранные с помощью поля endpoints. Подробнее см. в разделе IntegrityViolationReport.
| Тип заголовка | Заголовок ответа |
|---|
Синтаксис
Integrity-Policy: blocked-destinations=(<destination>),sources=(<source>),endpoints=(<endpoint>)
Значения заголовка задаются в виде словарей структурированных полей со следующими ключами:
blocked-destinations-
Список назначений запросов, для которых необходимо указать действительные метаданные целостности. Допустимые значения:
script-
Ресурсы скриптов.
style-
Ресурсы таблиц стилей.
sourcesНеобязательно-
Список источников целостности, для которых необходимо указать метаданные целостности. Допустимые значения:
inline-
Источник метаданных целостности находится непосредственно в содержимом, например в виде атрибута integrity. Это значение используется по умолчанию.
Поскольку это значение используется по умолчанию и является единственным, пропуск
sourcesравносилен указаниюsources=(inline).
endpointsНеобязательно-
Список имён конечных точек для отчётов, указывающих, куда отправлять отчёты. Конечные точки для отчётов должны быть заданы в заголовке
Reporting-Endpoints.
Примеры
>Блокировка и отправка отчётов, если у скриптов отсутствуют метаданные целостности
В этом примере показан документ, который блокирует запрос и отправляет отчёт на конечную точку сервера, если какой-либо <script> (или HTMLScriptElement) не содержит атрибута integrity либо если ресурс скрипта запрашивается в режиме no-cors.
Обратите внимание, что integrity-endpoint, используемое в Integrity-Policy, задано в заголовке Reporting-Endpoints.
Reporting-Endpoints: integrity-endpoint="https://example.com/integrity", backup-integrity-endpoint="https://report-provider.example/integrity" Integrity-Policy: blocked-destinations=(script), endpoints=(integrity-endpoint backup-integrity-endpoint)
Данные отчёта могут выглядеть так.
{
"type": "integrity-violation",
"url": "https://example.com",
"body": {
"documentURL": "https://example.com",
"blockedURL": "https://example.com/main.js",
"destination": "script",
"reportOnly": false
}
}
Спецификации
| Спецификация |
|---|
| Целостность подресурсов> # integrity-policy-section> |
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | |
Integrity-Policy |
138 | 138 | 145Отчётыendpoints игнорируются (нарушения записываются в консоль). |
122 | 26 | 138 | 145Отчётыendpoints игнорируются (нарушения записываются в консоль). |
91 | 26 | Нет | 138 | 26 |
blocked-destinations_script |
138 | 138 | 145 | 122 | 26 | 138 | 145 | 91 | 26 | Нет | 138 | 26 |
blocked-destinations_style |
Нет | Нет | 142 | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
См. также
© 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/Integrity-Policy