Thanks to visit codestin.com
Credit goes to developer.mozilla.org

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 Garantien haben.

Wenn festgelegt, blockiert der User-Agent Anfragen zu bestimmten Anfragezielen, die Integritätsmetadaten weglassen, und blockiert auch Anfragen im no-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 im Reporting-Endpoints Header deklariert ist. Berichte werden mit der Reporting API erzeugt und können auch auf der Seite beobachtet werden, für die die Integritätsrichtlinie durchgesetzt wird, unter Verwendung eines ReportingObserver. Das Format des Berichtskörpers wird durch das IntegrityViolationReportBody 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

Syntax

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

Die Header-Werte sind als strukturierte Felddictionarys mit den folgenden Schlüsseln definiert:

blocked-destinations

Eine Liste von Anfragezielen, 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, 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 Berichtsendpunktnamen, die angeben, wohin Berichte gesendet werden. Die Berichtsendpunkte müssen in einem Reporting-Endpoints Header definiert sein.

Beispiele

Blockieren und Berichten, wenn Skripte keine Integritätsmetadaten haben

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 Berichtsnutzdaten könnten folgendermaßen 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