Integrity-Policy-Report-Only header
Der HTTP-Antwortheader Integrity-Policy-Report-Only ermöglicht es Website-Administratoren, Berichte über Ressourcen zu erstellen, die der User-Agent lädt und die gegen die Subresource Integrity-Garantien verstoßen würden, wenn die Integritätsrichtlinie durchgesetzt würde (unter Verwendung des Integrity-Policy Headers).
Berichte können für Anfragen an spezifizierte Anfrageziele erstellt werden, die Integritätsmetadaten auslassen oder im no-cors-Modus gemacht werden.
Damit Berichte an einen Berichtsendpunkt gesendet werden, muss der Integrity-Policy-Report-Only Header einen gültigen Berichtsendpunkt-Namen spezifizieren, der mit einem Endpunkt übereinstimmt, der unter Verwendung des Reporting-Endpoints Headers deklariert wurde.
Berichte werden mit der Reporting API erstellt und können auch auf der Seite beobachtet werden, für die die Integritätsrichtlinie berichtet wird, unter Verwendung eines ReportingObserver.
Das Format des Berichtskörpers wird durch das IntegrityViolationReportBody-Wörterbuch bestimmt (eine JSON-sequentierte Form dieses Körpers wird in POSTs an Berichtserverendpunkte gesendet).
Der Header ermöglicht es Entwicklern, Integritätsrichtlinien zu testen und etwaige Inhaltsprobleme zu beheben, bevor ein Integrity-Policy Header zur Durchsetzung der Richtlinie implementiert wird.
| Header-Typ | Antwortheader |
|---|
Syntax
Integrity-Policy-Report-Only: blocked-destinations=(<destination>),sources=(<source>),endpoints=(<endpoint>)
Die Headerwerte sind als strukturierte Feldwörterbücher mit den folgenden Schlüsseln definiert:
blocked-destinations-
Eine Liste von Anfragezielen, die gültige Integritätsmetadaten enthalten müssen. Zulässige Werte sind:
sourcesOptional-
Eine Liste von Integritätsquellen, die Integritätsmetadaten enthalten müssen. Zulässige Werte sind:
inline-
Die Integritätsmetadatenquelle ist inline im Inhalt, wie das Integritätsattribut. Dies ist der Standardwert.
Da dies der Standardwert und der einzige Wert ist, ist das Auslassen von
sourcesgleichbedeutend mit der Angabe vonsources=(inline).
endpointsOptional-
Eine Liste von Berichtsendpunktnamen, die angeben, wohin Berichte gesendet werden. Die Berichtsendpunkte müssen in einem
Reporting-EndpointsHeader definiert sein.
Beispiele
>Berichterstattung, wenn Skripte Integritätsmetadaten fehlen
Dieses Beispiel zeigt ein Dokument, das berichtet, wenn ein <script> (oder HTMLScriptElement) kein integrity-Attribut angibt oder wenn eine Skriptressource im no-cors-Modus angefordert wird.
Beachten Sie, dass der in Integrity-Policy-Report-Only verwendete integrity-endpoint im Reporting-Endpoints Header definiert ist.
Reporting-Endpoints: integrity-endpoint=https://example.com/integrity, backup-integrity-endpoint=https://report-provider.example/integrity
Integrity-Policy-Report-Only: blocked-destinations=(script), endpoints=(integrity-endpoint, backup-integrity-endpoint)
Die Berichtsdaten könnten so aussehen.
{
"type": "integrity-violation",
"url": "https://example.com",
"body": {
"documentURL": "https://example.com",
"blockedURL": "https://example.com/main.js",
"destination": "script",
"reportOnly": false
}
}
Spezifikationen
| Specification |
|---|
| Subresource Integrity> # integrity-policy-section> |