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-Report-Only header

Der HTTP-Integrity-Policy-Report-Only-Response-Header ermöglicht es Website-Administratoren, über Ressourcen zu berichten, die der Nutzeragent lädt und die gegen Subresource Integrity-Garantie verstoßen würden, wenn die Integritätsrichtlinie durchgesetzt würde (unter Verwendung des Integrity-Policy-Headers).

Verstöße gegen die Richtlinie können mit der Reporting API gemeldet werden. Berichte können auf der Seite, für die die Richtlinie durchgesetzt wird, mithilfe eines ReportingObserver beobachtet werden und an Serverendpunkte gesendet werden, die in einem Reporting-Endpoints HTTP-Response-Header definiert und mithilfe des endpoints-Felds ausgewählt werden. Weitere Informationen finden Sie unter IntegrityViolationReport.

Der Header ermöglicht es Entwicklern, Integritätsrichtlinien zu testen und etwaige Inhaltsprobleme zu beheben, bevor schließlich ein Integrity-Policy-Header deployed wird, um die Richtlinie durchzusetzen.

Header-Typ Response-Header

Syntax

http
Integrity-Policy-Report-Only: 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-Destinationen, 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 zum Inhalt, wie das integrity-Attribut. Dies ist der Standard.

Da dies der Standard und der einzige Wert ist, ist das Weglassen von sources gleichbedeutend mit der Angabe von sources=(inline).

endpoints Optional

Eine Liste von Reporting-Endpoint-Namen, die angeben, wohin Berichte gesendet werden. Die Reporting-Endpunkte müssen in einem Reporting-Endpoints-Header definiert sein.

Beispiele

Berichterstattung, wenn Skripte keine Integritätsmetadaten aufweisen

Dieses Beispiel zeigt ein Dokument, das an einen Serverendpunkt berichtet, wenn ein <script> (oder HTMLScriptElement) kein integrity-Attribut angibt oder wenn eine Skriptressource im no-cors-Modus angefordert wird.

Beachten Sie, dass der integrity-endpoint, der in Integrity-Policy-Report-Only verwendet wird, 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-Report-Only: blocked-destinations=(script), endpoints=(integrity-endpoint, backup-integrity-endpoint)

Die Nutzlast des Berichts könnte so aussehen. Beachten Sie, dass die Eigenschaft body.reportOnly true ist, da dieser Bericht durch einen Verstoß gegen Integrity-Policy-Report-Only ausgelöst wurde.

json
{
  "age": "176279",
  "type": "integrity-violation",
  "url": "https://example.com",
  "body": {
    "documentURL": "https://example.com",
    "blockedURL": "https://example.com/main.js",
    "destination": "script",
    "reportOnly": "true"
  },
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36"
}

Spezifikationen

Spezifikation
Subresource Integrity
# integrity-policy-section

Browser-Kompatibilität

Siehe auch