CentralCSP
Reporting APITypes de rapports

Violation d'intégrité

Le rapport integrity-violation se déclenche quand Integrity-Policy bloque un script dépourvu de métadonnées Subresource Integrity valides.

Dernière mise à jour:

Un rapport integrity-violation vous indique qu'Integrity-Policy a bloqué, ou bloquerait, un script chargé sans métadonnées Subresource Integrity (SRI) valides. C'est ainsi que vous repérez les ressources qui pourraient être remplacées ou altérées (par exemple un asset de CDN compromis) avant qu'elles ne s'exécutent.

Expérimental

Integrity-Policy et son reporting sont récents et limités. Le reporting vers un endpoint fonctionne dans Chrome et Edge ; Firefox ne fait que journaliser dans la console et Safari ne le prend pas en charge.

Quand le navigateur l'envoie

Quand un document sous Integrity-Policy (ou Report-Only) charge un script sans attribut integrity valide, ou un script demandé en mode no-cors. Utilisez Integrity-Policy-Report-Only pour voir quels scripts manquent de SRI avant d'appliquer le blocage, afin qu'un déploiement ne casse pas un script légitime mais non hashé.

Configuration

Reporting-Endpoints: integrity-endpoint="https://<Endpoint-ID>.report.centralcsp.com"
Integrity-Policy-Report-Only: blocked-destinations=(script), endpoints=(integrity-endpoint)

Exemple de payload

{
  "type": "integrity-violation",
  "age": 5,
  "url": "https://example.com/",
  "user_agent": "Mozilla/5.0 ...",
  "body": {
    "documentURL": "https://example.com/",
    "blockedURL": "https://example.com/example-framework.js",
    "destination": "script",
    "reportOnly": false
  }
}

Le body d'un report integrity-violation contient ces champs, à l'intérieur de l'enveloppe de report commune.

Référence des champs

ChampSignification
documentURLLa page sur laquelle le script s'est chargé.
blockedURLLe script dépourvu de SRI valide.
destinationLa destination de la requête (actuellement seulement script).
reportOnlytrue pour une politique report-only, false lorsqu'elle est appliquée.

Comment le recevoir

Integrity-Policy sélectionne ses endpoints de reporting avec la directive endpoints=(), et non le paramètre report-to= qu'utilisent les autres politiques ; ces noms sont déclarés dans Reporting-Endpoints. CentralCSP collecte le flux d'intégrité ; associez-le au script inventory pour savoir quels scripts portent déjà du SRI.

Ce qu'il vous apprend sur la sécurité

Un script bloqué est un signal de supply-chain : un asset de CDN a changé et ne correspond plus à son hash, ou un script se charge sans aucune protection d'intégrité. Dans les deux cas, c'est précisément l'altération qu'Integrity-Policy sert à détecter, et le rapport nomme le script.

Pièges

Le reporting se branche avec endpoints=(), et non avec le paramètre report-to= utilisé par COOP, COEP et Permissions-Policy. Pour l'instant, seule la destination script est couverte.

Support navigateur

Défini dans la spec SRI ; disponibilité limitée. Le reporting vers un endpoint fonctionne dans Chrome et Edge ; Firefox ne fait que journaliser dans la console, et Safari ne le prend pas en charge.

Voir aussi

Sources

On this page