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 Integrity-Policy-Report-Only

Disponibilité limitée

Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.

L'en-tête de réponse HTTP Integrity-Policy-Report-Only permet aux administrateur·ice·s de site web de signaler les ressources chargées par l'agent utilisateur qui violeraient les garanties de l'intégrité des sous-ressources si la politique d'intégrité était appliquée (en utilisant l'en-tête Integrity-Policy).

Les violations de la politique peuvent être signalées à l'aide de l'API Reporting. Les rapports peuvent être observés dans la page pour laquelle la politique est appliquée, à l'aide d'un ReportingObserver, et envoyés aux points de terminaison du serveur définis dans un en-tête de réponse Reporting-Endpoints et sélectionnés à l'aide du champ endpoints. Pour plus d'informations, voir IntegrityViolationReport.

Cet en-tête permet aux développeur·euse·s de tester les politiques d'intégrité et de corriger les problèmes de contenu avant de déployer finalement un en-tête Integrity-Policy pour appliquer la politique.

Type d'en-tête En-tête de réponse

Syntaxe

http
Integrity-Policy-Report-Only: blocked-destinations=(<destination>),sources=(<source>),endpoints=(<endpoint>)

Les valeurs de l'en-tête sont définies comme des dictionnaires de champs structurés avec les clés suivantes :

blocked-destinations

Une liste de destinations de requête qui doivent inclure des métadonnées d'intégrité valides. Les valeurs autorisées sont :

script

Ressources de script.

style

Ressources de feuille de style.

sources Facultatif

Une liste de sources d'intégrité qui doivent inclure des métadonnées d'intégrité. Les valeurs autorisées sont :

inline

La source des métadonnées d'intégrité est incluse dans le contenu, comme l'attribut d'intégrité. Il s'agit de la valeur par défaut.

Comme il s'agit de la valeur par défaut et de la seule valeur, omettre sources équivaut à définir sources=(inline).

endpoints Facultatif

Une liste de noms de points de terminaison de rapport qui indiquent où les rapports seront envoyés. Les points de terminaison de rapport doivent être définis dans un en-tête Reporting-Endpoints.

Exemples

Signaler lorsque les scripts n'ont pas de métadonnées d'intégrité

Cet exemple montre un document qui signale à un point de terminaison de serveur lorsque l'élément HTML <script> (ou HTMLScriptElement) ne définit pas d'attribut integrity, ou lorsqu'une ressource de script est demandée en mode no-cors.

Notez que le integrity-endpoint utilisé dans Integrity-Policy-Report-Only est défini dans l'en-tête Reporting-Endpoints.

http
Reporting-Endpoints: integrity-endpoint=https://exemple.com/integrity, backup-integrity-endpoint=https://report-provider.exemple/integrity
Integrity-Policy-Report-Only: blocked-destinations=(script), endpoints=(integrity-endpoint, backup-integrity-endpoint)

La charge utile du rapport peut ressembler à ceci. Notez que la propriété body.reportOnly est true, car ce rapport a été déclenché par une violation de Integrity-Policy-Report-Only.

json
{
  "age": "176279",
  "type": "integrity-violation",
  "url": "https://exemple.com",
  "body": {
    "documentURL": "https://exemple.com",
    "blockedURL": "https://exemple.com/main.js",
    "destination": "script",
    "reportOnly": "true"
  },
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36"
}

Spécifications

Spécification
Subresource Integrity
# integrity-policy-section

Compatibilité des navigateurs

Voir aussi