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
| Champ | Signification |
|---|---|
policyId | Le point de configuration qui a été enfreint, par exemple document-write. |
disposition | enforce, ou report en mode Report-Only. |
message | Une description lisible par un humain de la violation. |
sourceFile | Le fichier qui l'a déclenché. |
lineNumber / columnNumber | L'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
- Document-Policy
- Document-Policy expliqué (guide)
- report crash
- Monitoring Document-Policy dans CentralCSP
- Header Reporting-Endpoints
- Le format de livraison des rapports
Sources
Violation Permissions-Policy
Le report permissions-policy-violation se déclenche quand une page utilise une fonctionnalité interdite par Permissions-Policy.
Violation d'intégrité
Le rapport integrity-violation se declenche quand Integrity-Policy bloque un script depourvu de metadonnees Subresource Integrity valides.