Integrity-Policy-Report-Only header
Der HTTP Integrity-Policy-Report-Only
Antwort-Header ermöglicht es Website-Administratoren, Berichte über Ressourcen zu erstellen, die der Benutzeragent lädt und die Subresource Integrity Garantien verletzen würden, wenn die Integritätspolicy durchgesetzt würde (mithilfe des Integrity-Policy
Headers).
Berichte können für Anfragen zu festgelegten Anfragezielen generiert werden, die Integritätsmetadaten auslassen oder im no-cors Modus durchgeführt werden. Damit Berichte an einen Berichts-Endpunkt gesendet werden können, muss der Integrity-Policy-Report-Only
Header einen gültigen Berichtsendpunkt-Namen angeben, der einem Endpunkt entspricht, der mit dem Reporting-Endpoints
Header deklariert wurde. Berichte werden mit der Reporting API generiert und können auch auf der Seite, für die die Integritätsregel gemeldet wird, mit einem ReportingObserver beobachtet werden. Das Format des Berichtskörpers wird durch das IntegrityViolationReportBody
Wörterbuch gegeben (eine JSON-serialisierte Form dieses Körpers wird in POSTs an Berichtserver-Endpunkte gesendet).
Der Header ermöglicht es Entwicklern, Integritätspolicies zu testen und etwaige Inhaltsprobleme zu beheben, bevor schließlich ein Integrity-Policy
Header zur Durchsetzung der Regel bereitgestellt wird.
Header-Typ | Antwort-Header |
---|---|
Verbotener Anfrage-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 Anfragezielen, die gültige Integritätsmetadaten enthalten müssen. Zulässige Werte sind:
script
-
Skript-Ressourcen.
sources
Optional-
Eine Liste von Integritätsquellen, die Integritätsmetadaten enthalten müssen. Zulässige Werte sind:
inline
-
Die Quelle der Integritätsmetadaten ist inline zum Inhalt, wie das Integritätsattribut. Dies ist der Standard.
Da dies der Standard und der einzige Wert ist, ist das Weglassen von
sources
gleichbedeutend mit der Angabe vonsources=(inline)
.
endpoints
Optional-
Eine Liste von Berichtsendpunkt-Namen, die angeben, wohin Berichte gesendet werden. Die Berichtendpunkte müssen in einem
Reporting-Endpoints
Header definiert sein.
Beispiele
Berichterstattung, wenn Skripte keine Integritätsmetadaten aufweisen
Dieses Beispiel zeigt ein Dokument, das meldet, wenn ein <script>
(oder HTMLScriptElement
) kein integrity
Attribut angibt, 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 Berichtsnutzlast könnte 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 |