Connection-Allowlist
Le report connection-allowlist signale une page qui a tenté une connexion vers une destination non autorisée par sa Connection-Allowlist.
Dernière mise à jour:
Un report connection-allowlist vous indique qu'une page a tenté d'ouvrir une
connexion vers une destination que sa 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 ; en mode application, c'est le relevé de ce qui a été
bloqué.
Expérimental, essai d'origine
Ce type de report vient de la proposition WICG Connection Allowlists, diffusée dans le cadre d'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.
Quand le navigateur l'envoie
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
Le report arrive dans l'enveloppe standard application/reports+json,
avec les données propres à l'allowlist dans body. La spec ne fournit pas d'exemple
verbatim, donc celui-ci est illustratif :
{
"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
| 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
Déclarez un endpoint avec un header Reporting-Endpoints,
puis pointez la politique vers lui avec le paramètre report-to=.
Reporting-Endpoints: connection-endpoint="https://<Endpoint-ID>.report.centralcsp.com"Connection-Allowlist-Report-Only: (response-origin "https://*.example.com"); report-to=connection-endpointCe qu'il 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 va frapper à une porte inattendue. C'est le même
risque supply-chain que remontent le script inventory
et le reporting CSP, cette fois au niveau des sorties réseau.
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 la manière exacte dont les URL de
url et connection sont dépouillées, 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 d'écrire du code de parsing autour.
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
- header Connection-Allowlist
- Connection Allowlists, un bac à sable des sorties réseau dans le navigateur
- report csp-violation
- Le format de livraison des reports
Sources
Violation d'intégrité
Le rapport integrity-violation se déclenche quand Integrity-Policy bloque un script dépourvu de métadonnées Subresource Integrity valides.
Vue d'ensemble
Le fonctionnement de chaque politique navigateur configurable, ce contre quoi elle protège, et comment elle remonte ses rapports via la Reporting API.