Outils
Vérificateur Reporting API
Entrez une URL et voyez où partent réellement ses rapports navigateur : Reporting-Endpoints, Report-To, le report-uri CSP de repli et NEL, fonctionnalité par fonctionnalité.
Vérifier une URL
Inspectez la configuration de reporting d'un site : points de collecte, reporting par fonctionnalité et politiques.
Exemple de résultat
À quoi ressemble une vérification
Quels endpoints sont déclarés, quelles fonctionnalités leur envoient réellement des rapports, et quoi corriger en premier. Un Aucun rouge signifie que le navigateur génère des rapports et les perd tous silencieusement.
Points de collecte
Points de collecte déclarés par le site, et s'ils sont utilisés.
| Point de collecte | URL | Statut | Déclaré dans |
|---|---|---|---|
| csp-endpoint | Utilisé | reporting-endpoints | |
| default | Utilisé | reporting-endpoints | |
| legacy-analytics | Inutilisé | report-to |
Fonctionnalités
Statut de reporting de chaque fonctionnalité de sécurité et où ses rapports sont envoyés.
Constats et recommandations
Problèmes et recommandations de qualité pour la configuration de reporting.
Guide
Comprendre le reporting navigateur
La Reporting API est le mécanisme par lequel le navigateur collecte les violations de politique, les erreurs réseau, les dépréciations et les crashs, puis les livre hors bande à un endpoint que vous déclarez dans un en-tête de réponse. Le navigateur vous signale ce que votre Content Security Policy bloque, une requête qui échoue ou une page qui utilise une API dépréciée. Mais il ne le fait que si vos en-têtes indiquent où envoyer le rapport, et la plupart des sites ne l'indiquent jamais.
Ce que le vérificateur examine
Il répond à trois questions sur n'importe quelle URL : où avez-vous dit aux navigateurs d'envoyer leurs rapports, quelles fonctionnalités de sécurité sont réellement câblées vers ces endpoints, et quels rapports sont générés puis jetés. Il ne lit que vos en-têtes de réponse, car c'est aussi tout ce qu'un navigateur lit : pas d'agent, pas de JavaScript, rien à installer.
Reporting-Endpoints ou Report-To ?
Deux en-têtes peuvent faire le travail, et l'un des deux vit en sursis. Reporting-Endpoints est le standard actuel : une ligne de paires nom-URL. Report-To est son prédécesseur déprécié, et la seule raison pour laquelle il refuse de mourir est Network Error Logging, qui l'exige encore. Si vous ajoutez le reporting aujourd'hui, déclarez vos endpoints dans Reporting-Endpoints. Les deux sont couverts en profondeur dans le guide Reporting-Endpoints et le guide Report-To.
Reporting-Endpoints: default="https://<Endpoint-ID>.report.centralcsp.com", csp-endpoint="https://<Endpoint-ID>.report.centralcsp.com"
Report-To: {"group":"default","max_age":86400,"endpoints":[{"url":"https://<Endpoint-ID>.report.centralcsp.com"}]}Reporting-Endpoints, Report-To, report-to, report-uri
Quatre noms, deux en-têtes et deux directives CSP. Voici le tableau que l'on vient réellement chercher.
| Nom | Ce que c'est | Statut | Quand vous en avez encore besoin |
|---|---|---|---|
Reporting-Endpoints | En-tête de réponse nommant les endpoints par paires nom-URL | À jour | Toujours, pour toute nouvelle configuration |
Report-To | En-tête de réponse déclarant des groupes d'endpoints en JSON | Déprécié, mais requis pour NEL | Seulement si vous collectez le Network Error Logging |
report-to | Directive CSP pointant vers un nom d'endpoint déclaré dans un en-tête | À jour | Toujours, pour router les violations CSP vers un endpoint |
report-uri | Directive CSP nommant directement une URL, sans en-tête requis | Déprécié | Plus nécessaire : report-to et Reporting-Endpoints la remplacent |
Brancher les rapports de violation CSP avec report-to
Le déploiement de CSP le plus sûr commence par des rapports, pas par des règles. Servez la politique en Content-Security-Policy-Report-Only avec une directive report-to qui pointe vers un endpoint déclaré dans Reporting-Endpoints. Les navigateurs vous disent alors exactement ce que la politique aurait cassé, et vous la durcissez avant qu'un seul visiteur ne soit affecté. La directive report-uri, dépréciée, ne vaut plus la peine d'être ajoutée à une nouvelle politique : report-to et Reporting-Endpoints couvrent à eux seuls les rapports de violation CSP. Pour les détails, consultez la Présentation de Content-Security-Policy et le guide du rapport de violation CSP.
Reporting-Endpoints: csp-endpoint="https://<Endpoint-ID>.report.centralcsp.com"
Content-Security-Policy-Report-Only: default-src 'self'; report-to csp-endpointNEL, l'exception qui exige encore Report-To
Certains échecs n'atteignent jamais votre serveur : un DNS qui ne résout pas, un TLS qui n'aboutit pas, des connexions qui meurent en route. Network Error Logging est la façon dont les navigateurs les rapportent, et comme la visite échouée ne livre aucun en-tête, le navigateur doit se souvenir de votre configuration depuis une visite réussie antérieure. C'est pourquoi NEL a encore besoin de l'ancien en-tête Report-To, et pourquoi Reporting-Endpoints ne peut pas le remplacer. Chromium uniquement. Syntaxe complète dans le guide Network Error Logging.
Report-To: {"group":"network-errors","max_age":2592000,"endpoints":[{"url":"https://<Endpoint-ID>.report.centralcsp.com"}]}
NEL: {"report_to":"network-errors","max_age":2592000}Quand les rapports n'arrivent pas
Six causes couvrent la quasi-totalité des endpoints silencieux.
- Une page servie en http://. La Reporting API ne fonctionne que dans un contexte sécurisé : une page qui n'est pas servie en HTTPS ne génère aucun rapport, quels que soient ses en-têtes.
- Un nom d'endpoint que rien ne déclare. Une directive report-to pointe vers un endpoint qu'aucun en-tête Reporting-Endpoints ou Report-To ne déclare : le navigateur génère le rapport puis l'abandonne.
- Un endpoint en http://. Les navigateurs l'ignorent, sans erreur ni avertissement en console.
- Le mauvais type de contenu. L'endpoint doit accepter les requêtes POST en application/reports+json, ou en application/csp-report pour l'ancien format report-uri.
- Une réponse autre qu'un code 2xx. Tout autre code et le navigateur considère la livraison comme échouée.
- Le délai de regroupement. Celui que l'on prend le plus souvent pour une panne. Les navigateurs mettent les rapports en file et les envoient un peu après le chargement de page qui les a produits : un endpoint qui semble mort trente secondes après un test n'a peut-être simplement pas eu le temps.
Si vous voulez voir les rapports avant même d'avoir branché un endpoint, une page peut lire les siens avec ReportingObserver en JavaScript : c'est un bon moyen de confirmer que le navigateur génère bien ce que vous attendez.
Comment lire vos résultats
Les résultats sont pensés pour être simples : ils vous montrent comment votre reporting est configuré et signalent tout ce qui le casserait. Un endpoint référencé qu'aucun en-tête ne déclare ? Signalé. Un endpoint déclaré vers lequel rien n'envoie ? Signalé. Une politique qui ne rapporte nulle part ? Signalée aussi, avec le correctif juste à côté. Corrigez ce qui est signalé, relancez la vérification, et vos rapports continuent d'arriver.
Plus d'outils gratuits
Poursuivez l'audit avec les autres outils gratuits
Chaque outil est gratuit, fonctionne sans compte et note avec la même échelle de sévérité.
Scanner CSP
Récupérez la Content-Security-Policy réellement servie par une URL et notez-la face aux contournements connus, aux sources joker et aux directives manquantes.
- Constats au niveau des directives
- Lien de résultats partageable
Évaluateur CSP
Collez une politique pas encore déployée et obtenez la même notation et les mêmes constats qu'un scan en ligne, sans URL.
- Auditez avant de déployer
- Même moteur de notation
Scanner d'en-têtes de sécurité
Notez chaque en-tête de sécurité envoyé par une URL, de HSTS à Permissions-Policy, avec chaque constat expliqué et priorisé.
- Tous les en-têtes, une seule note
- Correctifs classés par impact
Générateur de hash SRI
Transformez l'URL d'un script ou d'un CSS servi par un CDN en hash Subresource Integrity, avec une balise prête à coller et une vérification CORS.
- SHA-256, 384 et 512
- CORS vérifié pour vous
Générateur de hash CSP
Transformez un script ou un style inline en hash qui l'autorise sous une politique stricte, directement dans votre navigateur.
- Fonctionne entièrement côté client
- SHA-256, 384 et 512
Comparateur de sites
Situez votre score : votre site à côté de la moyenne du jeu de données et des sites les mieux configurés de l'année, contrôle par contrôle.
- Références publiées et vérifiables
- Vue radar par catégorie
FAQ
Questions fréquentes
Endpoints, en-têtes et rapports manquants : les réponses.
Endpoint vérifié. Collectez-y maintenant de vrais rapports.
CentralCSP vous fournit un endpoint de reporting managé qui accepte toutes les générations : report-uri, Report-To et Reporting-Endpoints sur la même URL. Les rapports arrivent dédupliqués, regroupés et alertés dans Slack ou Teams. Ajoutez un en-tête, sans changer votre code.
