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
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:
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 vonsources=(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.
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.
{
"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
Loading…