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-Antwortheader ermöglicht es Website-Administratoren, Berichte über Ressourcen zu erstellen, die der User-Agent lädt und die die Subresource Integrity-Garantie verletzen würden, wenn die Integritätsrichtlinie durchgesetzt würde (durch den Integrity-Policy-Header).

Berichte können für Anfragen zu angegebenen Request-Destinationen erstellt werden, bei denen Integritätsmetadaten fehlen oder die im no-cors Modus gemacht wurden. Damit Berichte an einen Berichts-Endpunkt gesendet werden können, muss der Integrity-Policy-Report-Only-Header einen gültigen Berichts-Endpunktnamen angeben, der einem Endpunkt entspricht, der mit dem Reporting-Endpoints-Header deklariert wurde. Berichte werden mithilfe der Reporting API generiert und können auch auf der Seite beobachtet werden, für die die Integritätsrichtlinie gemeldet wird, mit einem ReportingObserver. Das Format des Berichtskörpers wird durch das IntegrityViolationReportBody-Wörterbuch angegeben (eine JSON-serielle Form dieses Körpers wird in POST-Anfragen an Berichtsserver-Endpunkte gesendet).

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

Header-Typ Response-Header
Verbotener Anforderungsheader nein

Syntax

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

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

blocked-destinations

Eine Liste von Request-Destinationen, 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 Integritätsmetadatenquelle ist inline zum Inhalt, wie das Integritätsattribut. Dies ist die Standardeinstellung.

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

endpoints Optional

Eine Liste von Berichts-Endpunktnamen, die angeben, wohin Berichte gesendet werden. Die Berichts-Endpunkte müssen in einem Reporting-Endpoints-Header definiert werden.

Beispiele

Berichtserstellung, wenn Skripte Integritätsmetadaten fehlen

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 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 Berichtsnutzlast könnte wie folgt 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