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 qui a été enfreint et où cela s'est produit.

Expérimental

Document-Policy est un brouillon WICG, pas un standard W3C, et est porté par Chromium. 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 que la document policy contraint. Exécutez Document-Policy-Report-Only pour voir les violations sans appliquer le blocage, utile parce que l'ensemble des points de configuration dépend de l'implémentation et que vous voulez confirmer ce qui se déclenche réellement avant de bloquer.

Exemple de payload

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

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

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 lisible par un humain de la violation.
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 ferme un risque d'injection de script et de performance, par exemple. Un report de violation vous pointe directement vers le 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, donc parsez 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, donc les contraintes disponibles dépendent de l'implémentation.

Voir aussi

Sources

On this page