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-Integrity-Policy-Antwort-Header ermöglicht es Website-Administratoren sicherzustellen, dass alle Ressourcen, die der User Agent lädt (eines bestimmten Typs), Subresource Integrity-Garantie aufweisen.

Wenn der Header gesetzt ist, blockiert der User Agent Anfragen bei angegebenen Request Destinations, die keine Integritätsmetadaten enthalten, und verhindert auch, dass Anfragen im no-cors-Modus überhaupt gestellt werden.

Verstoßberichte können ebenfalls gesendet werden, wenn der Header einen Reporting-Endpunktnamen enthält, der mit einem Endpunkt übereinstimmt, der mit dem Reporting-Endpoints-Header deklariert wurde. Berichte werden mithilfe der Reporting API erstellt und können auch auf der Seite beobachtet werden, für die die Integritätsrichtlinie durchgesetzt wird, mithilfe eines ReportingObserver. Das Format des Berichtskörpers wird durch das IntegrityViolationReportBody-Wörterbuch angegeben (eine JSON-serialisierte Form dieses Körpers wird in POSTs an Reporting-Server-Endpunkte gesendet).

Dies hilft, Manipulationen von abgerufenen Subressourcen zu verhindern.

Header-Typ Antwort-Header

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 Request Destinations, 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 im Inhalt enthalten, wie das integrity-Attribut. Dies ist der Standardwert.

Da dies der Standard- und einzige Wert ist, entspricht das Weglassen von sources 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 aufweisen

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 Berichtnutzlast 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