# Report-To header (/fr/docs/web-security/reporting-api/headers/report-to)



`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`](/fr/docs/web-security/reporting-api/headers/reporting-endpoints) pour presque tous les usages, et
le seul endroit où il reste nécessaire est le [Network Error Logging (NEL)](/fr/docs/web-security/policies/network-error-logging).

<Callout type="error" title="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](/fr/docs/web-security/reporting-api/headers/reporting-endpoints) à la place, sauf pour [NEL](/fr/docs/web-security/policies/network-error-logging), qui exige toujours ce header.
</Callout>

```http
Report-To: { "group": "csp-endpoint", "max_age": 10886400,
             "endpoints": [ { "url": "https://<Endpoint-ID>.report.centralcsp.com" } ] }
```

## Valeurs et rôle de chacune [#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 [#valeurs-non-sûres-à-éviter]

<Callout type="warn">
  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.
</Callout>

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 [#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](/fr/docs/web-security/reporting-api/concepts/report-to-vs-reporting-endpoints).

## Ce contre quoi il protège [#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 [#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 [#risques-dune-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 [#recommandation]

Utilisez [`Reporting-Endpoints`](/fr/docs/web-security/reporting-api/headers/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](/fr/docs/web-security/policies/network-error-logging)
lit toujours son groupe d'endpoints depuis ce header, un site qui utilise NEL envoie
donc les deux headers ensemble.

```http
Report-To: {"group":"nel-group","max_age":31536000,"endpoints":[{"url":"https://<Endpoint-ID>.report.centralcsp.com"}]}
```

```http
NEL: {"report_to":"nel-group","max_age":31536000,"include_subdomains":true}
```

## Comment le configurer [#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](/fr/docs/platform/monitoring)
pour collecter le flux d'erreurs réseau aux côtés de vos autres reports.

```http
Report-To: {"group":"nel-group","max_age":31536000,"endpoints":[{"url":"https://<Endpoint-ID>.report.centralcsp.com"}]}
```

```http
NEL: {"report_to":"nel-group","max_age":31536000,"include_subdomains":true,"failure_fraction":1.0}
```

## Prise en charge par les navigateurs [#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 [#voir-aussi]

* [Reporting-Endpoints header](/fr/docs/web-security/reporting-api/headers/reporting-endpoints)
* [Report-To vs Reporting-Endpoints](/fr/docs/web-security/reporting-api/concepts/report-to-vs-reporting-endpoints)
* [Report-To vs Reporting-Endpoints, lequel utiliser](/fr/blog/report-to-vs-reporting-endpoints)
* [Network Error Logging (NEL)](/fr/docs/web-security/policies/network-error-logging)
* [Report network-error](/fr/docs/web-security/reporting-api/reports/network-error)

## Sources [#sources]

* [MDN, Report-To header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Report-To)
* [Chrome, migrate to Reporting API v1](https://developer.chrome.com/blog/reporting-api-migration)
