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 Integrity-Policy-Report-Only-Antwort-Header 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 auf bestimmten Anfragezielen generiert werden, die Integritätsmetadaten auslassen oder die im no-cors Modus getätigt werden. Damit Berichte an einen Meldungsendpunkt gesendet werden, muss der Integrity-Policy-Report-Only-Header einen gültigen Endpunkt für Berichterstattung angeben, der zu einem Endpunkt passt, der mit dem Reporting-Endpoints-Header deklariert wurde. Berichte werden mit der Reporting API generiert und können auch auf der Seite beobachtet werden, für die die Integritätsrichtlinie gemeldet wird, unter Verwendung eines ReportingObserver. Das Format des Berichtskörpers wird durch das IntegrityViolationReportBody-Wörterbuch angegeben (eine JSON-serielle Form dieses Körpers wird in POSTs an die Endpunkte des Berichtsservers gesendet).

Der Header ermöglicht es Entwicklern, Integritätsrichtlinien zu testen und etwaige Inhaltsprobleme zu beheben, bevor schließlich ein Integrity-Policy-Header eingesetzt 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 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. Erlaubte Werte sind:

script

Skript-Ressourcen.

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 ist inline in den Inhalt eingebettet, wie z.B. das integrity-Attribut. Dies ist der Standardwert.

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 Namen von Berichterstattungsendpunkten, die angeben, wohin Berichte gesendet werden. Die Berichterstattungsendpunkte müssen in einem Reporting-Endpoints-Header definiert sein.

Beispiele

Berichterstattung, wenn Skripte keine Integritätsmetadaten aufweisen

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 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 Nutzlast des Berichts 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