Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Integrity-Policy header
Der HTTPIntegrity-Policy Antwort-Header ermöglicht es Website-Administratoren sicherzustellen, dass alle Ressourcen, die der User-Agent lädt (eines bestimmten Typs),Subresource Integrity Garantien haben.
Wenn festgelegt, blockiert der User-Agent Anfragen zu bestimmtenAnfragezielen, die Integritätsmetadaten weglassen, und blockiert auch Anfragen imno-cors Modus, bevor sie gesendet werden.
Verstoßberichte können ebenfalls gesendet werden, wenn der Header einen Berichtsendpunktnamen enthält, der mit einem Endpunkt übereinstimmt, der imReporting-Endpoints Header deklariert ist.Berichte werden mit derReporting API erzeugt und können auch auf der Seite beobachtet werden, für die die Integritätsrichtlinie durchgesetzt wird, unter Verwendung einesReportingObserver.Das Format des Berichtskörpers wird durch dasIntegrityViolationReportBody Dictionary angegeben (eine JSON-serialisierte Form dieses Körpers wird in POSTs an Berichtserver-Endpunkte gesendet).
Dies hilft, gegen die Manipulation von Inhalten abgerufener Teilressourcen zu schützen.
| Header-Typ | Antwort-Header |
|---|
In diesem Artikel
Syntax
Integrity-Policy: blocked-destinations=(<destination>),sources=(<source>),endpoints=(<endpoint>)Die Header-Werte sind als strukturierte Felddictionarys mit den folgenden Schlüsseln definiert:
blocked-destinationsEine Liste vonAnfragezielen, die gültige Integritätsmetadaten enthalten müssen.Zulässige Werte sind:
sourcesOptionalEine Liste von Integritätsquellen, die Integritätsmetadaten enthalten müssen.Zulässige Werte sind:
inlineDie Integritätsmetadatenquelle ist inline im Inhalt, wie dasintegrity Attribut.Dies ist der Standardwert.
Da dies der Standard- und einzige Wert ist, ist das Weglassen von
sourcesgleichbedeutend mit der Angabe vonsources=(inline).
endpointsOptionalEine Liste vonBerichtsendpunktnamen, die angeben, wohin Berichte gesendet werden.Die Berichtsendpunkte müssen in einem
Reporting-EndpointsHeader definiert sein.
Beispiele
>Blockieren und Berichten, wenn Skripte keine Integritätsmetadaten haben
Dieses Beispiel zeigt ein Dokument, das blockiert und berichtet, wenn ein<script> (oderHTMLScriptElement) keinintegrity Attribut angibt oder wenn eine Skriptressource imno-cors Modus angefordert wird.
Beachten Sie, dass der inIntegrity-Policy verwendeteintegrity-endpoint imReporting-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)DieBerichtsnutzdaten könnten folgendermaßen 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> |