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

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).

Des rapports peuvent être générés pour les requêtes sur les destinations de requête définies qui omettent les métadonnées d'intégrité, ou qui sont effectuées en mode no-cors. Pour que les rapports soient envoyés à un point de terminaison de rapport, l'en-tête Integrity-Policy-Report-Only doit définir un nom de point de terminaison de rapport valide qui correspond à un point de terminaison déclaré à l'aide de l'en-tête Reporting-Endpoints. Les rapports sont générés à l'aide de l'API Reporting et peuvent également être observés dans la page pour laquelle la politique d'intégrité est signalée, à l'aide d'un ReportingObserver. Le format du corps du rapport est donné par le dictionnaire IntegrityViolationReportBody (une forme sérialisée en JSON de ce corps est envoyée en POST aux points de terminaison du serveur de rapport).

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 Expérimental

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 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 pourrait ressembler à ceci.

json
{
  "type": "integrity-violation",
  "url": "https://exemple.com",
  "body": {
    "documentURL": "https://exemple.com",
    "blockedURL": "https://exemple.com/main.js",
    "destination": "script",
    "reportOnly": false
  }
}

Spécifications

Specification
Subresource Integrity
# integrity-policy-section

Compatibilité des navigateurs

Voir aussi