Content-Security-Policy: report-to directive
Baseline
2026
Newly available
Since March 2026, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Chỉ thị report-to trong Content-Security-Policy chỉ định tên của endpoint mà trình duyệt nên sử dụng để báo cáo vi phạm CSP.
Khi xảy ra vi phạm CSP, một báo cáo được tạo ra chứa một đối tượng CSPViolationReport được tuần tự hóa.
Báo cáo này được gửi đến URL tương ứng với tên endpoint, sử dụng các cơ chế chung được định nghĩa trong Reporting API.
Máy chủ phải cung cấp riêng biệt ánh xạ giữa tên endpoint và URL tương ứng trong tiêu đề phản hồi HTTP Reporting-Endpoints.
| Phiên bản CSP | 3 |
|---|---|
| Loại chỉ thị | Reporting directive |
Chỉ thị này không được hỗ trợ trong phần tử <meta>.
|
|
Cú pháp
Content-Security-Policy: …; report-to <endpoint_name>
<endpoint_name> là tên của một endpoint được cung cấp bởi tiêu đề phản hồi HTTP Reporting-Endpoints.
Nó cũng có thể là tên của một nhóm được máy chủ cung cấp trong tiêu đề phản hồi HTTP Report-To
Deprecated
.
Cú pháp báo cáo vi phạm
Báo cáo vi phạm CSP là một đối tượng CSPViolationReport được tuần tự hóa JSON, với thuộc tính type có giá trị "csp-violation".
Báo cáo được gửi đến các endpoint đích thông qua thao tác POST với Content-Type là application/reports+json.
JSON cho một báo cáo đơn có thể trông như sau:
{
"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"
}
Ghi chú sử dụng
Chỉ thị report-to được thiết kế để thay thế report-uri, và các trình duyệt hỗ trợ report-to sẽ bỏ qua chỉ thị report-uri.
Tuy nhiên, cho đến khi report-to được hỗ trợ rộng rãi, bạn có thể chỉ định cả hai chỉ thị như sau:
Content-Security-Policy: …; report-uri https://endpoint.example.com; report-to endpoint_name
Lưu ý rằng các ví dụ khác trong chủ đề này không hiển thị report-uri.
Ví dụ
>Đặt endpoint báo cáo vi phạm CSP
Máy chủ có thể xác định ánh xạ giữa tên endpoint và URL bằng tiêu đề Reporting-Endpoints trong phản hồi HTTP.
Bất kỳ tên nào cũng có thể được sử dụng: ở đây chúng tôi đã chọn name-of-endpoint.
Reporting-Endpoints: name-of-endpoint="https://example.com/csp-reports"
Máy chủ có thể đặt tên endpoint này làm mục tiêu để gửi báo cáo vi phạm CSP bằng chỉ thị report-to:
Content-Security-Policy: default-src 'self'; report-to name-of-endpoint
Thông số kỹ thuật
| Specification |
|---|
| Content Security Policy Level 3> # directive-report-to> |