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

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Der HTTP Integrity-Policy-Antwortheader ermöglicht es Website-Administratoren sicherzustellen, dass alle Ressourcen, die das Benutzerprogramm lädt (eines bestimmten Typs), über Subresource Integrity-Garantien verfügen.

Wenn gesetzt, blockiert das Benutzerprogramm Anfragen an die angegebenen Request Destinations, die die Integritätsmetadaten weglassen, und wird auch Anfragen im no-cors-Modus davon abhalten, jemals gestellt zu werden.

Verletzungsberichte können ebenfalls gesendet werden, wenn der Header einen Meldeendpunktnamen enthält, der mit einem über den Reporting-Endpoints-Header deklarierten Endpunkt übereinstimmt. Berichte werden unter Verwendung der Reporting API erstellt und können auch in der Seite, für die die Integritätsrichtlinie durchgesetzt wird, mittels eines ReportingObserver beobachtet werden. Das Format des Berichtsinhalt wird durch das IntegrityViolationReportBody-Wörterbuch angegeben (eine JSON-serialisierte Form dieses Inhalts wird in POST-Anfragen an Melde-Server-Endpunkte gesendet).

Dies hilft, Manipulationen von Inhalten der abgerufenen Subressourcen zu verhindern.

Header-Typ Antwortheader
Verbotener Anforderungsheader nein

Syntax

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

Die Header-Werte sind als strukturierte Feld-Wörterbücher mit den folgenden Schlüsseln definiert:

blocked-destinations

Eine Liste von Request Destinations, die gültige Integritätsmetadaten enthalten müssen. Zulässige Werte sind:

script

Skriptressourcen.

style

Stylesheet-Ressourcen.

sources Optional

Eine Liste von Integritätsquellen, die Integritätsmetadaten enthalten müssen. Zulässige 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 Meldeendpunktnamen, die angeben, wohin Berichte gesendet werden. Die Meldeendpunkte müssen in einem Reporting-Endpoints-Header definiert sein.

Beispiele

Blockieren und Berichten, wenn Skripts 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 Berichtdaten könnten 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