Report-To header
Le header historique qui déclare les groupes de endpoints de reporting, remplacé par Reporting-Endpoints mais toujours requis pour NEL.
Dernière mise à jour:
Report-To est le header d'origine pour indiquer au navigateur où envoyer les
reports. Il définit des groupes d'endpoints en JSON, avec cache et failover. Il a été
remplacé par le header plus simple Reporting-Endpoints pour presque tous les usages, et
le seul endroit où il reste nécessaire est le Network Error Logging (NEL).
Déprécié et non standard
Report-To n'est jamais devenu un standard du web et n'a été diffusé que dans les navigateurs fondés sur Chromium. Utilisez Reporting-Endpoints à la place, sauf pour NEL, qui exige toujours ce header.
Report-To: { "group": "csp-endpoint", "max_age": 10886400,
"endpoints": [ { "url": "https://<Endpoint-ID>.report.centralcsp.com" } ] }Valeurs et rôle de chacune
La valeur est du JSON : un tableau d'objets groupe avec les crochets externes omis, de
sorte qu'un groupe unique s'écrit sans [ ] autour. Chaque groupe a ces membres :
| Membre | Statut | Rôle |
|---|---|---|
group | ⚠️ Déprécié | Le nom qu'une politique référence, l'équivalent historique d'un nom d'endpoint dans Reporting-Endpoints. |
max_age | ⚠️ Déprécié | Secondes de mise en cache de cette configuration, le modèle ambiant que la v1 a abandonné. |
endpoints | ⚠️ Déprécié | Un tableau d'objets URL, optionnellement avec priority et weight pour le failover. |
include_subdomains | ⚠️ Déprécié | Appliquer aussi la configuration aux sous-domaines. |
Valeurs non sûres à éviter
Les endpoints doivent être en HTTPS. Un max_age long met la configuration en cache et un attaquant capable de poser des headers sur une réponse pourrait maintenir des endpoints obsolètes en vie, donc dimensionnez-le raisonnablement.
Comme pour tout endpoint de reporting, ne le pointez que vers un hôte de confiance ; les corps de report peuvent porter des URL et des échantillons de contenu.
Pourquoi ce header existe
Report-To a été le premier mécanisme de livraison de la Reporting API. Son modèle de
groupement, de cache et de répartition de charge s'est révélé dépasser ce que les
autres moteurs de navigateur voulaient standardiser, c'est pourquoi le plus simple
Reporting-Endpoints (v1) l'a remplacé. Voir
Report-To vs Reporting-Endpoints.
Ce contre quoi il protège
Rien directement. Comme Reporting-Endpoints, il n'applique aucune politique ; c'est
le transport qui rend observables les violations de politique et les erreurs réseau.
La valeur, c'est la visibilité, pas l'application.
Contournements connus et limites
Il est réservé à Chromium et n'a jamais été diffusé dans Firefox ou Safari, et il est remplacé pour tout sauf NEL. Considérez-le comme historique : ne l'utilisez que là où vous y êtes contraint.
Risques d'une mauvaise configuration
Les échecs sont silencieux. Une valeur JSON malformée désactive le reporting sans
erreur, et un nom de group qui ne correspond pas à ce qu'une politique (ou le header
NEL) référence signifie que ces reports ne vont nulle part.
Recommandation
Utilisez Reporting-Endpoints
pour chaque politique, CSP, COOP, COEP, Permissions-Policy et le reste. Gardez
Report-To pour une seule tâche : le Network Error Logging
lit toujours son groupe d'endpoints depuis ce header, un site qui utilise NEL envoie
donc les deux headers ensemble.
Report-To: {"group":"nel-group","max_age":31536000,"endpoints":[{"url":"https://<Endpoint-ID>.report.centralcsp.com"}]}NEL: {"report_to":"nel-group","max_age":31536000,"include_subdomains":true}Comment le configurer
Le seul cas qui exige encore Report-To est NEL. Le membre report_to du header
NEL nomme un groupe défini ici, et les deux headers sont envoyés ensemble. Pointez
l'endpoint du groupe vers le reporting CentralCSP
pour collecter le flux d'erreurs réseau aux côtés de vos autres reports.
Report-To: {"group":"nel-group","max_age":31536000,"endpoints":[{"url":"https://<Endpoint-ID>.report.centralcsp.com"}]}NEL: {"report_to":"nel-group","max_age":31536000,"include_subdomains":true,"failure_fraction":1.0}Prise en charge par les navigateurs
Navigateurs fondés sur Chromium uniquement (Chrome, Edge et autres) ; il n'a jamais
été diffusé dans Firefox ou Safari, et la spécification W3C Reporting ne le définit
pas. Pour tout ce qui n'est pas NEL, utilisez plutôt Reporting-Endpoints.
Voir aussi
- Reporting-Endpoints header
- Report-To vs Reporting-Endpoints
- Report-To vs Reporting-Endpoints, lequel utiliser
- Network Error Logging (NEL)
- Report network-error