CentralCSP
Reporting APITypes de rapports

Erreur réseau

Le report network-error envoyé par Network Error Logging quand une requête échoue au niveau réseau, avant de joindre votre serveur.

Dernière mise à jour:

Un report network-error décrit une requête qui a échoué (ou réussi, en cas d'échantillonnage) au niveau réseau : un échec DNS, une erreur TCP ou TLS, une connexion réinitialisée ou une erreur HTTP. Comme ces échecs n'atteignent souvent jamais vos propres journaux, Network Error Logging (NEL) est le moyen de les voir du point de vue du client.

Expérimental, et lié à l'ancien header

NEL est propre à Chromium et c'est le seul type de report qui requiert encore le header déprécié Report-To. Reporting-Endpoints ne délivre pas NEL. Voir Network Error Logging.

Quand le navigateur l'envoie

Lors de l'échec d'une requête, ou lors d'une requête réussie quand le success_fraction configuré l'échantillonne. Les paramètres failure_fraction et success_fraction du header NEL contrôlent ce qui est reporté, donc les échecs sont généralement capturés à plein taux et les succès échantillonnés légèrement, voire pas du tout.

Configuration

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}

Exemple de payload

{
  "type": "network-error",
  "age": 20,
  "url": "https://api-next.centralcsp.com/bad-request",
  "user_agent": "Mozilla/5.0 ...",
  "body": {
    "sampling_fraction": 1,
    "referrer": "https://api-next.centralcsp.com/previous-page",
    "server_ip": "192.0.2.172",
    "protocol": "http/1.1",
    "method": "POST",
    "request_headers": {},
    "response_headers": {},
    "status_code": 400,
    "elapsed_time": 338,
    "phase": "application",
    "type": "http.error"
  }
}

Référence des champs

ChampSignification
sampling_fractionLe taux auquel ce résultat a été échantillonné (0 à 1).
referrerLe referrer de la requête échouée.
server_ipL'IP du serveur résolue, ou "" si aucune.
protocolLe protocole utilisé, par exemple http/1.1.
methodLa méthode HTTP.
request_headersLes headers de requête que la politique NEL a choisi d'inclure, indexés par nom.
response_headersLes headers de réponse que la politique NEL a choisi d'inclure, indexés par nom.
status_codeLe statut HTTP, ou 0 quand il n'y a pas eu de réponse.
elapsed_timeTemps jusqu'à l'échec, en millisecondes.
phaseOù elle a échoué : dns, connection ou application.
typeLe code d'erreur précis, par exemple dns.name_not_resolved, tcp.refused, http.error.

La phase est le triage le plus rapide : dns pointe vers la résolution de nom, connection vers TCP ou TLS, et application vers une erreur de niveau HTTP.

Comment le recevoir

Associez le header NEL à un groupe Report-To (NEL ne fonctionne pas avec Reporting-Endpoints). Pointez l'endpoint du groupe vers CentralCSP pour collecter le flux network-error au côté de vos autres reports.

Ce qu'il vous apprend sur la sécurité

La plupart des erreurs réseau sont des signaux de disponibilité, mais les schémas comptent : un groupe d'échecs TLS ou de certificat depuis une même région peut indiquer une interception ou un portail captif, et une vague d'échecs DNS ou de connexion est un signal de disponibilité et d'intégrité qui mérite d'être investigué avant que les utilisateurs ne se plaignent.

Pièges

Les noms de champs du body sont en snake_case, contrairement aux reports de violation de politique en camelCase. NEL est réservé à HTTPS, et n'est pas délivré via Reporting-Endpoints, seulement via l'ancien header Report-To, qui est le seul endroit où ce header est encore requis.

Prise en charge par les navigateurs

Navigateurs basés sur Chromium uniquement (Chrome, Edge, Opera). Firefox et Safari n'implémentent pas NEL, et Mozilla maintient une position défavorable au standard en invoquant la confidentialité.

Voir aussi

Sources

On this page