Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Integrity-Policy-Report-Only header

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Der HTTP-Integrity-Policy-Report-Only Response-Header ermöglicht es Website-Administratoren, Berichte über Ressourcen zu erstellen, die der User-Agent lädt und die gegen die Subresource-Integrity-Garantie verstoßen würden, wenn die Integritätsrichtlinie durchgesetzt würde (unter Verwendung des Integrity-Policy Headers).

Berichte können für Anfragen zu bestimmten Request-Zielen erstellt werden, die Integritätsmetadaten auslassen oder im no-cors-Modus erstellt werden. Damit Berichte an einen Berichtsendpunkt gesendet werden können, muss der Integrity-Policy-Report-Only Header einen gültigen Berichtsendpunktnamen angeben, der mit einem Endpunkt übereinstimmt, der mit dem Reporting-Endpoints Header deklariert wurde. Berichte werden unter Verwendung der Reporting API erstellt und können auch auf der Seite, für die die Integritätsrichtlinie gemeldet wird, mit einem ReportingObserver beobachtet werden. Das Format des Berichtskörpers wird durch das IntegrityViolationReportBody-Wörterbuch angegeben (eine JSON-serialisierte Form dieses Körpers wird in POSTs an die Berichtserver-Endpunkte gesendet).

Der Header ermöglicht es Entwicklern, Integritätsrichtlinien zu testen und potenzielle Inhaltsprobleme zu beheben, bevor schließlich ein Integrity-Policy Header eingesetzt wird, um die Richtlinie durchzusetzen.

Header-Typ Response-Header
Verbotener Anfrage-Header nein

Syntax

http
Integrity-Policy-Report-Only: blocked-destinations=(<destination>),sources=(<source>),endpoints=(<endpoint>)

Die Header-Werte sind als strukturierte Felder mit folgendem Aufbau definiert:

blocked-destinations

Eine Liste von Request-Zielen, die gültige Integritätsmetadaten enthalten müssen. Erlaubte Werte sind:

script

Skriptressourcen.

style

Stylesheet-Ressourcen.

sources Optional

Eine Liste von Integritätsquellen, die Integritätsmetadaten enthalten müssen. Erlaubte Werte sind:

inline

Die Quelle der Integritätsmetadaten befindet sich inline im Inhalt, wie das integrity-Attribut. Dies ist der Standard.

Da dies der Standard und einzige Wert ist, ist das Auslassen von sources gleichbedeutend mit der Angabe von sources=(inline).

endpoints Optional

Eine Liste von Namen der Berichtsendpunkte, die angeben, wohin Berichte gesendet werden. Die Berichtsendpunkte müssen in einem Reporting-Endpoints Header definiert sein.

Beispiele

Berichtserstellung, wenn Skripte keine Integritätsmetadaten enthalten

Dieses Beispiel zeigt ein Dokument, das meldet, wenn ein <script> (oder HTMLScriptElement) kein integrity-Attribut angibt oder wenn eine Skriptressource im no-cors-Modus angefordert wird.

Beachten Sie, dass der integrity-endpoint, der in Integrity-Policy-Report-Only verwendet wird, im Reporting-Endpoints Header definiert ist.

http
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 folgendermaßen aussehen.

json
{
  "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

Browser-Kompatibilität

Siehe auch