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 header

Der HTTP-Antwortheader Integrity-Policy ermöglicht es Website-Administratoren sicherzustellen, dass alle Ressourcen, die der Benutzeragent lädt (eines bestimmten Typs), Subresource Integrity-Garantien erfüllen.

Wenn dieser gesetzt ist, blockiert der Benutzeragent Anfragen zu bestimmten Zielanforderungen, die Integritätsmetadaten weglassen, und blockiert auch Anfragen im no-cors-Modus, bevor sie überhaupt gemacht werden.

Verletzungsberichte können ebenfalls gesendet werden, wenn der Header einen Berichtsendpunktnamen enthält, der einem Endpunkt entspricht, der mittels des Reporting-Endpoints-Headers deklariert wurde. Berichte werden mithilfe der Reporting API generiert und können auch auf der Seite beobachtet werden, für die die Integritätsrichtlinie durchgesetzt wird, indem ein ReportingObserver verwendet wird. Das Format des Berichtskörpers wird durch das IntegrityViolationReportBody-Wörterbuch vorgegeben (eine JSON-serialisierte Form dieses Körpers wird in POST-Anfragen an die Berichtsserver-Endpunkte gesendet).

Dies hilft, Manipulationen von Inhalten über abgerufene Subressourcen zu verhindern.

Header-Typ Antwort-Header
Verbotener Anforderungsheader nein

Syntax

http
Integrity-Policy: 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 Zielanforderungen, die gültige Integritätsmetadaten enthalten müssen. Zulässige Werte sind:

script

Skriptdatenressourcen.

style

Stylesheet-Ressourcen.

sources Optional

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

inline

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

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

endpoints Optional

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

Beispiele

Blockieren und Berichten, wenn Skripte keine Integritätsmetadaten enthalten

Dieses Beispiel zeigt ein Dokument, das blockiert und 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 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: blocked-destinations=(script), endpoints=(integrity-endpoint backup-integrity-endpoint)

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