Integrity-Policy-Report-Only header
Der HTTP Integrity-Policy-Report-Only
Antwort-Header ermöglicht es Website-Administratoren, über Ressourcen zu berichten, die das Benutzeragent lädt und die gegen die Subresource Integrity Garantien verstoßen würden, wenn die Integritätspolitik durchgesetzt würde (mittels des Integrity-Policy
Headers).
Berichte können für Anfragen zu bestimmten Request-Zielen generiert werden, die Metadaten zur Integrität auslassen oder im no-cors Modus gestellt werden. Damit Berichte an ein Reporting-Endpunkt gesendet werden, muss der Integrity-Policy-Report-Only
Header einen gültigen Namen des Reporting-Endpunkts spezifizieren, der mit einem Endpunkt übereinstimmt, der durch den Reporting-Endpoints
Header deklariert wurde. Berichte werden unter Verwendung der Reporting API generiert und können auch auf der Seite beobachtet werden, für die die Integritätspolitik gemeldet wird, mittels eines ReportingObserver. Das Format des Berichtskörpers wird durch das IntegrityViolationReportBody
Wörterbuch angegeben (eine JSON-serialisierte Form dieses Körpers wird in POSTs an Reporting-Server-Endpunkte gesendet).
Der Header erlaubt es Entwicklern, Integritätspolitiken zu testen und etwaige Inhaltsprobleme zu beheben, bevor ein Integrity-Policy
Header zur Durchsetzung der Politik eingesetzt wird.
Header-Typ | Antwort-Header |
---|---|
Verbotener Anforderungs-Header | nein |
Syntax
Integrity-Policy-Report-Only: blocked-destinations=(<destination>),sources=(<source>),endpoints=(<endpoint>)
Die Header-Werte sind als strukturierte Feldwörterbücher mit den folgenden Schlüsseln definiert:
blocked-destinations
-
Eine Liste von Request-Zielen, die gültige Integritätsmetadaten enthalten müssen. Erlaubte Werte sind:
script
-
Skript-Ressourcen.
sources
Optional-
Eine Liste von Integritätsquellen, die Integritätsmetadaten enthalten müssen. Erlaubte Werte sind:
inline
-
Die Quelle der Integritätsmetadaten ist inline im Inhalt, wie das integrity-Attribut. Dies ist der Standardwert.
Da dies der Standardwert und einzige Wert ist, ist das Weglassen von
sources
gleichbedeutend mit der Angabe vonsources=(inline)
.
endpoints
Optional-
Eine Liste von Reporting-Endpunktnamen, die angeben, wohin Berichte gesendet werden. Die Reporting-Endpunkte müssen in einem
Reporting-Endpoints
Header definiert sein.
Beispiele
Berichterstattung, wenn Skripte Integritätsmetadaten fehlen
Dieses Beispiel zeigt ein Dokument, das meldet, wenn ein <script>
(oder HTMLScriptElement
) kein integrity
Attribut spezifiziert oder wenn eine Skript-Ressource 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 Payload des Berichts könnte folgendermaßen 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 |