Заголовки: CSP.report-to
Content-Security-Policy: директива report-to
Базовая поддержка 2026 Недавно появилась
С марта 2026 года эта функция работает на самых новых устройствах и в последних версиях браузеров. На старых устройствах и в старых версиях браузеров она может не работать.
Директива Content-Security-Policy report-to указывает имя конечной точки, которую браузер должен использовать для отправки сообщений о нарушениях CSP.
При нарушении CSP формируется отчёт, содержащий сериализованный экземпляр объекта CSPViolationReport. Этот отчёт отправляется по URL, соответствующему имени конечной точки, с использованием общих механизмов, определённых в Reporting API.
Сервер должен отдельно предоставлять соответствие между именами конечных точек и соответствующими им URL в HTTP-заголовке ответа Reporting-Endpoints.
| Версия CSP | 3 |
|---|---|
| Тип директивы | Директива отправки отчётов |
Эта директива не поддерживается в элементе <meta>. | |
Синтаксис
Content-Security-Policy: …; report-to <endpoint_name>
<endpoint_name> — это имя конечной точки, указанное в HTTP-заголовке ответа Reporting-Endpoints. Это также может быть имя группы, указанной сервером в HTTP-заголовке ответа Report-To.
Синтаксис отчёта о нарушении
Отчёт о нарушении CSP — это сериализованный в JSON объект CSPViolationReport со свойством type, значение которого равно "csp-violation". Отчёты отправляются на целевые конечные точки с помощью операции POST с типом содержимого Content-Type application/reports+json.
JSON для одного отчёта может выглядеть так:
{
"age": 53531,
"body": {
"blockedURL": "inline",
"columnNumber": 39,
"disposition": "enforce",
"documentURL": "https://example.com/csp-report",
"effectiveDirective": "script-src-elem",
"lineNumber": 121,
"originalPolicy": "default-src 'self'; report-to csp-endpoint-name",
"referrer": "https://www.google.com/",
"sample": "console.log(\"lo\")",
"sourceFile": "https://example.com/csp-report",
"statusCode": 200
},
"type": "csp-violation",
"url": "https://example.com/csp-report",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36"
}
Примечания по использованию
Директива report-to предназначена для замены report-uri, а браузеры, поддерживающие report-to, игнорируют директиву report-uri. Однако, пока report-to не получит широкую поддержку, можно указать обе директивы, как показано ниже:
Content-Security-Policy: …; report-uri https://endpoint.example.com; report-to endpoint_name
Обратите внимание: в других примерах в этой статье report-uri не показана.
Примеры
>Настройка конечной точки для отчётов о нарушениях CSP
Сервер может задать соответствие между именами конечных точек и URL с помощью заголовка Reporting-Endpoints в HTTP-ответе. Можно использовать любое имя: в этом примере мы выбрали name-of-endpoint.
Reporting-Endpoints: name-of-endpoint="https://example.com/csp-reports"
Сервер может указать это имя конечной точки в директиве report-to в качестве адресата для отправки отчётов о нарушениях CSP:
Content-Security-Policy: default-src 'self'; report-to name-of-endpoint
Спецификации
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
report-to |
70 | 79 | 149 | 57 | 16.4 | 70 | 149 | 49 | 16.4 | 10.0 | 70 | 16.4 |
См. также
© 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/Content-Security-Policy/report-to