Aller au contenu principal
Security Headers Scanner
L'observatoire des en-têtes de
sécurité de vos sites internet
Analyses totales 15210
Score moyen 38,70
Sites analysés 2013
Meilleur score 155

Cross-Origin-Resource-Policy (CORP)

Contrôler quels sites peuvent utiliser certaines ressources servies par un domaine.

Comprendre Cross-Origin-Resource-Policy

Un site web met à disposition de nombreuses ressources : images, polices de caractères, fichiers, contenus multimédias ou autres éléments chargés par les pages.

Toutes ces ressources n’ont pas forcément vocation à être utilisées librement par n’importe quel autre site.

Cross-Origin-Resource-Policy, souvent abrégé en CORP, permet au serveur d’indiquer au navigateur dans quels contextes une ressource peut être utilisée.

Une ressource peut ainsi être réservée :

  • uniquement à la même origine ;
  • aux différentes origines appartenant au même site ;
  • ou être utilisable depuis d’autres origines.

Pourquoi est-ce important ?

Imaginons qu’un site fournisse des images ou des fichiers uniquement pour ses propres pages.

Sans règle particulière, un autre site peut parfois tenter de charger directement ces ressources depuis son propre contenu.

CORP permet d’indiquer au navigateur que certains de ces usages ne doivent pas être autorisés, ce qui contribue à mieux isoler les ressources entre plusieurs origines.

Configurer CORP

Le serveur transmet sa politique grâce à l’en-tête :

Cross-Origin-Resource-Policy: same-origin

Cette valeur indique au navigateur que la ressource doit être utilisée uniquement depuis la même origine.

Si une page provenant d’une autre origine tente de charger la ressource dans un contexte concerné par CORP, le navigateur peut refuser son utilisation.

Les principales valeurs

same-origin

Autorise l’utilisation de la ressource uniquement depuis la même origine. C’est la valeur la plus restrictive parmi les trois principales possibilités.

same-site

Autorise l’utilisation de la ressource depuis différentes origines appartenant au même site.

cross-origin

Autorise l’utilisation de la ressource depuis d’autres origines. C’est la valeur la plus permissive.

Même origine et même site : quelle différence ?

Ces deux notions sont proches, mais elles ne désignent pas exactement la même chose.

Par exemple :

https://www.example.com

et :

https://static.example.com

peuvent appartenir au même site, tout en étant deux origines différentes.

Une politique same-site peut donc être adaptée lorsqu’un site répartit ses ressources entre plusieurs sous-domaines.

CORP, CORS, COOP et COEP

CORP et CORS ne jouent pas le même rôle

Les noms peuvent sembler proches et les deux mécanismes concernent les échanges entre différentes origines, mais ils répondent à des besoins différents.

CORS permet notamment à un serveur d’autoriser une page provenant d’une autre origine à accéder au contenu d’une réponse.

CORP, de son côté, indique au navigateur dans quels contextes une ressource peut être utilisée lorsqu’elle est demandée depuis une autre origine.

Ces deux mécanismes ne sont donc pas interchangeables et peuvent être utilisés ensemble.

CORP fait partie d’un ensemble de protections d’isolation

CORP est également souvent associé à deux autres mécanismes :

CORP, COOP et COEP répondent chacun à un objectif différent, mais peuvent être combinés pour renforcer l’isolation entre les différentes origines.

Exemple concret

Imaginons qu’une image soit disponible ici :

https://example.com/images/photo.jpg

Si elle est envoyée avec :

Cross-Origin-Resource-Policy: same-origin

le serveur indique au navigateur que cette ressource est destinée à être utilisée uniquement dans le contexte de la même origine.

Bonnes pratiques et limites

Bonnes pratiques

  • Identifier quelles ressources doivent réellement être utilisables depuis d’autres origines.
  • Utiliser une politique restrictive lorsque les ressources sont destinées uniquement au site qui les fournit.
  • Tenir compte des sous-domaines utilisés pour héberger les ressources du site.
  • Choisir same-origin, same-site ou cross-origin selon l’usage réel de chaque ressource.
  • Tester les pages et intégrations légitimes après toute modification de la politique.
  • Examiner CORP avec CORS, COOP et COEP lorsque le site utilise plusieurs origines ou services externes.

Une politique trop restrictive peut bloquer des usages légitimes

Si une image, une police ou un autre fichier doit être utilisé depuis plusieurs origines, une politique same-origin peut être trop restrictive.

Il ne faut pas pour autant supprimer la protection par facilité : il faut choisir la valeur correspondant au fonctionnement réellement attendu.

La politique doit correspondre à l’usage réel des ressources.
Une ressource destinée uniquement au site peut être fortement restreinte, tandis qu’une ressource volontairement partagée doit disposer d’une politique permettant cet usage.

Ce que CORP ne remplace pas

CORP ne définit pas à lui seul l’ensemble des règles de sécurité entre plusieurs sites.

Il ne remplace notamment pas :

  • Content-Security-Policy (CSP) ;
  • CORS ;
  • HTTPS ;
  • COOP et COEP lorsque ces mécanismes sont nécessaires ;
  • la sécurité générale du site et de ses ressources.

CORP constitue donc une protection supplémentaire pour contrôler l’utilisation cross-origin des ressources et doit être configuré en fonction de la manière dont ces ressources sont réellement utilisées.

À retenir : CORP permet à un serveur d’indiquer dans quels contextes une ressource peut être utilisée depuis une autre origine.
Une politique adaptée permet de limiter les utilisations cross-origin non souhaitées tout en conservant les usages légitimes du site.