Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Content-Security-Policy : directive report-to

Baseline 2026
Nouvellement disponible

Depuis March 2026, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.

La directive HTTP Content-Security-Policy (CSP) report-to indique le nom du point de terminaison que le navigateur doit utiliser pour signaler les violations de CSP.

Si une violation de CSP se produit, un rapport est généré contenant une instance d'objet CSPViolationReport sérialisée. Ce rapport est envoyé à l'URL correspondant au nom du point de terminaison, en utilisant les mécanismes génériques définis dans l'API Reporting.

Le serveur doit fournir séparément la correspondance entre les noms de points de terminaison et leurs URL correspondantes dans l'en-tête de réponse HTTP Reporting-Endpoints.

Version de CSP 3
Type de directive Directive de rapport
Cette directive n'est pas prise en charge dans l'élément HTML <meta>.

Syntaxe

http
Content-Security-Policy: …; report-to <endpoint_name>

<endpoint_name> est le nom d'un point de terminaison fourni par l'en-tête de réponse HTTP Reporting-Endpoints. Il peut également s'agir du nom d'un groupe fourni par le serveur dans l'en-tête de réponse HTTP Report-To .

Syntaxe du rapport de violation

Un rapport de violation CSP est un objet CSPViolationReport sérialisé en JSON, avec une propriété type ayant pour valeur "csp-violation". Les rapports sont envoyés au(x) point(s) de terminaison cible avec une opération POST avec un Content-Type de application/reports+json.

Le JSON pour un seul rapport pourrait ressembler à ceci :

json
{
  "age": 53531,
  "body": {
    "blockedURL": "inline",
    "columnNumber": 39,
    "disposition": "enforce",
    "documentURL": "https://exemple.com/csp-report",
    "effectiveDirective": "script-src-elem",
    "lineNumber": 121,
    "originalPolicy": "default-src 'self'; report-to csp-endpoint-name",
    "referrer": "https://www.google.com/",
    "sample": "console.log(\"lo\")",
    "sourceFile": "https://exemple.com/csp-report",
    "statusCode": 200
  },
  "type": "csp-violation",
  "url": "https://exemple.com/csp-report",
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36"
}

Notes d'utilisation

La directive report-to est destinée à remplacer report-uri, et les navigateurs qui prennent en charge report-to ignorent la directive report-uri. Cependant, tant que report-to n'est pas largement pris en charge, vous pouvez spécifier les deux directives comme suit :

http
Content-Security-Policy: …; report-uri https://endpoint.exemple.com; report-to endpoint_name

Notez que les autres exemples de ce sujet ne montrent pas report-uri.

Exemples

Définir un point de terminaison de rapport de violation CSP

Un serveur peut définir la correspondance entre les noms de points de terminaison et les URL en utilisant l'en-tête Reporting-Endpoints dans la réponse HTTP. Tout nom peut être utilisé : ici, nous avons choisi name-of-endpoint.

http
Reporting-Endpoints: name-of-endpoint="https://exemple.com/csp-reports"

Le serveur peut définir ce nom de point de terminaison comme cible pour l'envoi des rapports de violation CSP en utilisant la directive report-to :

http
Content-Security-Policy: default-src 'self'; report-to name-of-endpoint

Spécifications

Spécification
Content Security Policy Level 3
# directive-report-to

Compatibilité des navigateurs

Voir aussi