CentralCSP
Reporting APITypes de rapports

Violation Document-Policy

Le report document-policy-violation se déclenche quand une page enfreint une contrainte fixée par Document-Policy.

Dernière mise à jour:

Un report document-policy-violation vous indique que la page a fait quelque chose qu'une contrainte de Document-Policy interdit, par exemple appeler document.write ou charger une image surdimensionnée quand ces usages sont restreints. Il nomme le point de configuration enfreint et l'endroit où cela s'est produit.

Expérimental

Document-Policy est un brouillon WICG, pas un standard W3C, et c'est Chromium qui le porte. L'ensemble des points de configuration et le body du report ne sont pas stables.

Quand le navigateur l'envoie

Quand la page enfreint un point de configuration contraint par la document policy. Passez par Document-Policy-Report-Only pour voir les violations sans rien bloquer : l'ensemble des points de configuration dépend de l'implémentation, mieux vaut donc confirmer ce qui se déclenche vraiment avant de bloquer.

Exemple de payload

{
  "type": "document-policy-violation",
  "age": 420,
  "url": "https://example.com/",
  "user_agent": "Mozilla/5.0 ...",
  "body": {
    "policyId": "document-write",
    "disposition": "enforce",
    "message": "Document policy violation: document-write is not allowed.",
    "sourceFile": "https://example.com/script.js",
    "lineNumber": 11,
    "columnNumber": 12
  }
}

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

Référence des champs

ChampSignification
policyIdLe point de configuration qui a été enfreint, par exemple document-write.
dispositionenforce, ou report en mode Report-Only.
messageUne description de la violation, lisible par un humain.
sourceFileLe fichier qui l'a déclenché.
lineNumber / columnNumberL'emplacement dans ce fichier.

Comment le recevoir

Ajoutez un paramètre report-to au header Document-Policy (ou sa variante Report-Only) et déclarez cet endpoint dans Reporting-Endpoints. CentralCSP collecte le flux document-policy.

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

Les contraintes les plus utiles réduisent de vrais dangers : bloquer document.write élimine un risque d'injection de script et de performance, par exemple. Un report de violation vous mène droit au code legacy qui dépend encore du comportement que vous voulez retirer.

Pièges

Le report posté nomme le champ policyId. L'interface ReportingObserver côté navigateur expose la même valeur sous featureId : parsez donc les reports reçus sur policyId, et ne lisez featureId que dans le code côté navigateur.

Prise en charge par les navigateurs

Navigateurs basés sur Chromium uniquement ; expérimental, et il n'existe pas de registre normatif des points de configuration : les contraintes disponibles dépendent donc de l'implémentation.

Voir aussi

Sources

On this page