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

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

http
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:

script

Skriptressourcen.

style

Stylesheet-Ressourcen.

sources Optional

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 sources gleichbedeutend mit der Angabe von sources=(inline).

endpoints Optional

Eine Liste von Berichtsendpunktnamen, die angeben, wohin Berichte gesendet werden. Die Berichtsendpunkte müssen in einem Reporting-Endpoints Header 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.

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 Berichtsdaten könnten so 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