# Connection-Allowlist (/fr/docs/web-security/reporting-api/reports/connection-allowlist)



Un report `connection-allowlist` vous indique qu'une page a tenté d'ouvrir une
connexion vers une destination que sa [`Connection-Allowlist`](/fr/docs/web-security/policies/connection-allowlist)
n'autorisait pas. En mode report-only, c'est le moyen sûr de voir ce qu'une politique
bloquerait avant de l'appliquer ; sous application, c'est le relevé de ce qui a été
bloqué.

<Callout type="warn" title="Expérimental, essai d'origine">
  Ce type de report provient de la proposition WICG Connection Allowlists, livré sous un essai d'origine Chromium et disponible uniquement dans les navigateurs basés sur Chromium. Les noms de champs sérialisés peuvent encore changer, alors traitez le payload ci-dessous comme provisoire.
</Callout>

## Quand le navigateur l'envoie [#quand-le-navigateur-lenvoie]

Quand un document ou un worker sous un header `Connection-Allowlist` (ou
`Connection-Allowlist-Report-Only`) ouvre une connexion dont la destination ne
correspond pas à l'allowlist. Cela couvre chaque type de connexion que l'allowlist
régit : fetch, WebSocket, WebRTC, navigation, redirections, et chargements de
sous-ressources comme les polices et les images.

## Exemple de payload [#exemple-de-payload]

Le report arrive dans l'enveloppe standard [`application/reports+json`](/fr/docs/web-security/reporting-api/concepts/report-delivery-format),
avec les données propres à l'allowlist dans `body`. La spec ne fournit pas d'exemple
verbatim, donc celui-ci est illustratif :

```json
{
  "type": "connection-allowlist",
  "age": 12,
  "url": "https://example.com/",
  "user_agent": "Mozilla/5.0 ...",
  "body": {
    "url": "https://example.com/",
    "connection": "https://evil.example/collect",
    "allowlist": ["https://*.example.com", "https://cdn.example"],
    "disposition": "enforce"
  }
}
```

## Référence des champs [#référence-des-champs]

| Champ         | Signification                                                                    |
| ------------- | -------------------------------------------------------------------------------- |
| `url`         | Le document d'où provient le report (dépouillé des identifiants et du fragment). |
| `connection`  | L'URL de destination qui a été bloquée.                                          |
| `allowlist`   | Les motifs d'URL de l'allowlist active.                                          |
| `disposition` | `enforce` quand la connexion a été bloquée, `report` en mode report-only.        |

## Comment le recevoir [#comment-le-recevoir]

Déclarez un endpoint avec un header [`Reporting-Endpoints`](/fr/docs/web-security/reporting-api/headers/reporting-endpoints),
puis pointez la politique vers lui avec le paramètre `report-to=`.

```http
Reporting-Endpoints: connection-endpoint="https://<Endpoint-ID>.report.centralcsp.com"
```

```http
Connection-Allowlist-Report-Only: (response-origin "https://*.example.com"); report-to=connection-endpoint
```

## Ce qu'il vous apprend sur la sécurité [#ce-quil-vous-apprend-sur-la-sécurité]

Un report `connection-allowlist` nomme une destination que votre page a tenté de
joindre et que vous n'avez jamais autorisée. C'est le signal d'une tentative
d'exfiltration ou d'un tiers qui atteint un endroit inattendu, le même risque de
supply-chain que le [script inventory](/fr/docs/platform/features/script-inventory) et
le reporting CSP font remonter, désormais à la couche d'egress réseau.

## Pièges [#pièges]

Connection Allowlists est une fonctionnalité en essai d'origine, donc la forme du report
n'est pas stable. Les noms de champs sérialisés, et le dépouillement exact des URL
appliqué à `url` et `connection`, peuvent différer de l'exemple ci-dessus et changer à
mesure que l'essai évolue. La spec ne fournit pas d'exemple de payload verbatim, alors
vérifiez les champs sur un report réel issu de votre propre trafic avant de construire du
parsing autour d'eux.

## Prise en charge par les navigateurs [#prise-en-charge-par-les-navigateurs]

Navigateurs basés sur Chromium uniquement, et seulement tant que l'essai d'origine est
activé. Firefox et Safari ne l'implémentent pas.

## Voir aussi [#voir-aussi]

* [header Connection-Allowlist](/fr/docs/web-security/policies/connection-allowlist)
* [Connection Allowlists, un bac à sable des sorties réseau dans le navigateur](/fr/blog/connection-allowlists-network-egress)
* [report csp-violation](/fr/docs/web-security/reporting-api/reports/csp-violation)
* [Le format de livraison des reports](/fr/docs/web-security/reporting-api/concepts/report-delivery-format)

## Sources [#sources]

* [WICG, Connection Allowlists](https://wicg.github.io/connection-allowlists/)
* [Chrome for Developers, Connection Allowlists origin trial](https://developer.chrome.com/blog/connection-allowlists-origin-trial)
* [MDN, Reporting-Endpoints header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Reporting-Endpoints)
