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

En-tête Report-To

Obsolète: Cette fonctionnalité n'est plus recommandée. Même si certains navigateurs la prennent encore en charge, elle a peut-être déjà été supprimée des standards du web, est en passe d'être supprimée ou n'est conservée qu'à des fins de compatibilité. Évitez de l'utiliser et mettez à jour le code existant si possible ; consultez le tableau de compatibilité au bas de cette page pour vous aider à prendre votre décision. Sachez que cette fonctionnalité peut cesser de fonctionner à tout moment.

Non standard: Cette fonctionnalité n'est pas standardisée. Nous déconseillons d'utiliser des fonctionnalités non standard en production, car leur prise en charge par les navigateurs est limitée, et elles peuvent être modifiées ou supprimées. Toutefois, elles peuvent constituer une alternative appropriée dans certains cas où aucune option standard n'existe.

Attention : Cet en-tête a été remplacé par l'en-tête HTTP Reporting-Endpoints. Il fait partie d'une version antérieure de la spécification de l'API Reporting et est obsolète.

L'en-tête de réponse HTTP Report-To permet aux administrateur·ice·s de sites de définir des groupes nommés de points de terminaison pouvant servir de destination pour les rapports d'avertissement et d'erreur, tels que les rapports d'infraction CSP, les rapports Cross-Origin-Opener-Policy, les rapports de dépréciation, ou d'autres violations génériques.

Report-To est souvent utilisé conjointement avec d'autres en-têtes qui sélectionnent un groupe de points de terminaison à utiliser pour un type particulier de rapport. Par exemple, la directive report-to de l'en-tête Content-Security-Policy peut être utilisée pour sélectionner le groupe utilisé pour signaler les violations CSP.

Type d'en-tête En-tête de réponse
En-tête de réponse autorisé par CORS Non

Syntaxe

http
Report-To: <json-field-value>
<json-field-value>

Une ou plusieurs définitions de groupes de points de terminaison, définies comme un tableau JSON sans les crochets [ et ] entourants. Chaque objet du tableau comporte les membres suivants :

group

Le nom du groupe de points de terminaison.

max_age

La durée en secondes pendant laquelle le navigateur doit mettre en cache la configuration de signalement.

endpoints

Un tableau contenant une ou plusieurs URL vers lesquelles les rapports du groupe doivent être envoyés.

Exemples

Définir un point de terminaison de rapport d'infraction CSP

Cet exemple montre comment un serveur peut utiliser Report-To pour définir un groupe de points de terminaison, puis définir ce groupe comme destination des rapports d'infraction CSP.

Un serveur peut d'abord envoyer une réponse contenant l'en-tête de réponse HTTP Report-To comme indiqué ci‑dessous. Cela définit un groupe de points de terminaison url identifié par le nom de groupe csp-endpoints.

http
Report-To: { "group": "csp-endpoints",
              "max_age": 10886400,
              "endpoints": [
                { "url": "https://exemple.com/reports" },
                { "url": "https://backup.com/reports" }
              ] }

Le serveur peut ensuite définir que ce groupe doit être la cible pour l'envoi des rapports d'infraction CSP en utilisant le nom du groupe comme valeur de la directive report-to :

http
Content-Security-Policy: script-src https://exemple.com/; report-to csp-endpoints

L'en-tête ci-dessus montre que toute violation de CSP sur script-src entraînerait l'envoi de rapports de violation vers les deux URL listées dans Report-To.

Définir plusieurs groupes de signalement

L'exemple ci‑dessous illustre un en-tête Report-To qui définit plusieurs groupes de points de terminaison. Remarquez que chaque groupe possède un nom unique et que les groupes ne sont pas délimités par des crochets de tableau.

http
Report-To: { "group": "csp-endpoint-1",
              "max_age": 10886400,
              "endpoints": [
                { "url": "https://exemple.com/csp-reports" }
              ] },
            { "group": "hpkp-endpoint",
              "max_age": 10886400,
              "endpoints": [
                { "url": "https://exemple.com/hpkp-reports" }
              ] }

On peut sélectionner un groupe de points de terminaison comme cible des rapports d'infraction en utilisant son nom, de la même manière que dans l'exemple précédent :

http
Content-Security-Policy: script-src https://exemple.com/; report-to csp-endpoint-1

Spécifications

Cet en-tête ne fait plus partie d'aucune spécification. Il faisait auparavant partie de l'API Reporting.

Compatibilité des navigateurs

Voir aussi