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

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Der HTTP Integrity-Policy-Report-Only Antwort-Header ermöglicht es Website-Administratoren, Berichte über Ressourcen zu erstellen, die der Benutzer-Agent lädt und die die Subresource Integrity Garantien verletzen würden, wenn die Integritätsrichtlinie durchgesetzt würde (unter Verwendung des Integrity-Policy Headers).

Verstöße gegen die Richtlinie können mithilfe der Reporting API gemeldet werden. Berichte können auf der Seite beobachtet werden, auf der die Richtlinie durchgesetzt wird, unter Verwendung eines ReportingObserver, und an Serverendpunkte gesendet werden, die in einem Reporting-Endpoints HTTP-Antwort-Header definiert sind und mithilfe des endpoints Feldes ausgewählt werden. Weitere Informationen finden Sie unter IntegrityViolationReport.

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

Header-Typ Antwort-Header

Syntax

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

Die Header-Werte werden als strukturierte Felder-Dictionaries mit den folgenden Schlüsseln definiert:

blocked-destinations

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

script

Skript-Ressourcen.

style

Stylesheet-Ressourcen.

sources Optional

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

inline

Die Integritäts-Metadatenquelle ist inline im Inhalt, wie das integrity-Attribut. Dies ist der Standard.

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

endpoints Optional

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

Beispiele

Berichterstellung, wenn Skripte keine Integritäts-Metadaten haben

Dieses Beispiel zeigt ein Dokument, das an einen Serverendpunkt berichtet, wenn irgendein <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 Nutzdaten des Berichts könnten folgendermaßen aussehen. Beachten Sie, dass die body.reportOnly Eigenschaft true ist, da dieser Bericht durch einen Verstoß gegen Integrity-Policy-Report-Only ausgelöst wurde.

json
{
  "age": "176279",
  "type": "integrity-violation",
  "url": "https://example.com",
  "body": {
    "documentURL": "https://example.com",
    "blockedURL": "https://example.com/main.js",
    "destination": "script",
    "reportOnly": "true"
  },
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36"
}

Spezifikationen

Spezifikation
Subresource Integrity
# integrity-policy-section

Browser-Kompatibilität

Siehe auch