# Scanner CSP (/fr/docs/platform/tools/csp-scanner)



Le scanner CSP récupère une page en production et note la [politique de sécurité du contenu (CSP)](/fr/docs/web-security/policies/content-security-policy) qu'elle sert. Vous obtenez un score sur 100, une liste classée de ce qu'il faut corriger, et la politique décomposée directive par directive, avec les valeurs faibles surlignées.

Utilisez-le pour vérifier ce qu'un site sert réellement, qui n'est pas toujours ce que la configuration prétend servir. Un réseau de diffusion de contenu (CDN), un reverse proxy ou un framework peut ajouter, retirer ou réécrire le header en sortie.

## Quand utiliser le scanner CSP [#quand-utiliser-le-scanner-csp]

* La politique est **déjà déployée** et vous voulez la faire noter. Utilisez cette page.
* La politique est **un brouillon** que vous n'avez pas déployé. Utilisez l'[évaluateur CSP](/fr/docs/platform/tools/csp-evaluator), qui note une valeur que vous collez et ne récupère rien.
* Vous voulez faire noter **toute la réponse**, pas seulement la politique. Utilisez le [scanner d'en-têtes](/fr/docs/platform/tools/security-header-scanner).

## Scanner une politique [#scanner-une-politique]

1. Ouvrez **Outils** > **Scanner CSP**.
2. Saisissez l'adresse, par exemple `example.com`. Sans schéma, `https://` est ajouté.
3. Laissez **Suivre les redirections** activé, sauf si vous voulez la réponse à cette URL exacte plutôt que celle de la page sur laquelle elle aboutit.
4. Sélectionnez **Scanner la politique**.

La page de résultat s'ouvre pendant que le scan tourne et se remplit quand il aboutit.

## Ce que couvre le score [#ce-que-couvre-le-score]

Le score principal s'appelle **Score CSP global**, et il est pondéré sur les seules vérifications de politique. Un site qui sert une CSP solide et aucun autre header de sécurité obtient une bonne note ici, et une note plus basse au [scanner d'en-têtes](/fr/docs/platform/tools/security-header-scanner).

À côté figurent **Sécurité**, qui mesure la résistance de la politique aux attaques côté client, et **Qualité**, qui mesure la propreté de son écriture. Un score de qualité élevé avec un score de sécurité bas veut dire que la politique est correcte mais permissive.

## Ce qu'il vérifie [#ce-quil-vérifie]

Les constats couvrent les façons dont une politique échoue à contenir une attaque, et celles dont elle est écrite sans soin. Parmi elles :

* **Confinement des injections.** Si [`script-src`](/fr/docs/web-security/policies/content-security-policy/directives/script-src) est strict, c'est-à-dire un nonce ou un hash plus `'strict-dynamic'`, ou bien `'none'` ou `'self'` seuls. Un `script-src` permissif, un [`base-uri`](/fr/docs/web-security/policies/content-security-policy/directives/base-uri), un [`object-src`](/fr/docs/web-security/policies/content-security-policy/directives/object-src) ou un `style-src` ouverts rouvrent une politique par ailleurs stricte.
* **Confinement de l'exfiltration.** Si [`connect-src`](/fr/docs/web-security/policies/content-security-policy/directives/connect-src), `img-src` et [`form-action`](/fr/docs/web-security/policies/content-security-policy/directives/form-action) restreignent les destinations vers lesquelles la page peut envoyer des données. `connect-src *`, un schéma nu comme `https:`, ou une directive absente sans `default-src` dont hériter sont tous signalés comme canal d'exfiltration.
* **Intégrité des scripts tiers.** Si la politique autorise des origines tierces sans exiger [Subresource Integrity](/fr/docs/web-security/other/subresource-integrity). C'est cette combinaison qu'exploite un script fournisseur compromis.
* **Valeurs de repli.** Un [`default-src`](/fr/docs/web-security/policies/content-security-policy/directives/default-src) absent, donc des directives sans règle explicite qui chargent depuis n'importe où.
* **Reporting.** Si la politique définit `report-to` ou `report-uri`, et si elle porte le mot-clé [`'report-sha256'`](/fr/docs/web-security/policies/content-security-policy/values/report-sha-keyword). Sans ce mot-clé, les navigateurs ne reportent jamais les hashes des scripts qu'ils ont exécutés, ce à partir de quoi un [inventaire de scripts](/fr/docs/platform/features/script-inventory) est construit.
* **Directives dépréciées et héritées**, et [politiques livrées dans une balise `meta`](/fr/docs/web-security/policies/content-security-policy/introduction/csp-headers), qui ne peuvent utiliser ni `frame-ancestors`, ni `report-uri`, ni `sandbox`.

Un résultat signale aussi le cas où le site n'envoie aucune `Content-Security-Policy`. Une page sans politique est exposée par défaut, ce cas compte donc comme un constat, pas comme un résultat vide.

## Lire la politique analysée [#lire-la-politique-analysée]

L'onglet **En-têtes analysés** montre chaque header de politique, sa source, et ses directives détaillées une par une. Chaque valeur est une puce. Une puce à l'origine d'un constat porte la couleur de sévérité du constat et son icône, une longue politique vous montre donc quel token pose problème sans avoir à lire toute la ligne.

`Content-Security-Policy` et `Content-Security-Policy-Report-Only` sont notés séparément, et une politique Report-Only sans équivalent appliqué est signalée. Signalé n'est pas bloqué.

**En-têtes bruts** montre la réponse intacte, c'est là que vous confirmez que le header est arrivé au navigateur sous la forme attendue.

## Quand rien ne remonte [#quand-rien-ne-remonte]

Si la politique scannée n'envoie ses violations nulle part, le résultat affiche un bandeau qui le dit, avec un raccourci pour ajouter le site à CentralCSP. Une politique sans endpoint bloque en silence, chaque casse qu'elle provoque passe donc inaperçue.

Pour commencer à collecter, voir [Connecter votre site](/fr/docs/platform/websites/connect-your-site).

## Étapes suivantes [#étapes-suivantes]

* [Évaluateur CSP](/fr/docs/platform/tools/csp-evaluator) pour noter une politique avant de la déployer
* [Scanner d'en-têtes](/fr/docs/platform/tools/security-header-scanner) pour noter le reste de la réponse
* [Référence Content Security Policy](/fr/docs/web-security/policies/content-security-policy)
* [Vue d'ensemble des outils](/fr/docs/platform/tools) pour le partage, l'export et les limites
