CentralCSP
Reporting APITypes de rapports

Violation d'intégrité

Le rapport integrity-violation se declenche quand Integrity-Policy bloque un script depourvu de metadonnees 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 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://api-next.centralcsp.com/",
  "user_agent": "Mozilla/5.0 ...",
  "body": {
    "documentURL": "https://api-next.centralcsp.com/",
    "blockedURL": "https://api-next.centralcsp.com/example-framework.js",
    "destination": "script",
    "reportOnly": false
  }
}

Chaque body de report integrity-violation porte ces champs à l'intérieur de l'enveloppe de report partagée.

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, et 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 exactement l'altération qu'Integrity-Policy existe pour détecter, et le rapport nomme le script.

Pièges

Le câblage du reporting utilise endpoints=(), et non le paramètre report-to= utilisé par COOP, COEP et Permissions-Policy. Actuellement, 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