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
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 :
sourcesFacultatif-
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éfinirsources=(inline).
endpointsFacultatif-
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.
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.
{
"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
- L'en-tête
Integrity-Policy - L'en-tête
Reporting-Endpoints - Politique d'intégrité
- L'API Reporting