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-Embedder-Policy (COEP)

Contrôler dans quelles conditions une page peut intégrer des ressources provenant d’autres origines.

Comprendre Cross-Origin-Embedder-Policy

Une page web ne charge pas toujours toutes ses ressources depuis son propre serveur.

Elle peut par exemple utiliser :

  • des images ;
  • des scripts ;
  • des polices de caractères ;
  • des vidéos ;
  • ou d’autres contenus provenant de services externes.

Cross-Origin-Embedder-Policy, souvent abrégé en COEP, permet d’imposer des règles plus strictes aux ressources provenant d’autres origines.

Qu’est-ce qu’une ressource cross-origin ?

Une ressource est dite cross-origin lorsqu’elle est chargée depuis une origine différente de celle de la page.

Par exemple, une page située sur :

https://example.com

peut charger une image depuis :

https://cdn.example.net/image.jpg

Les deux adresses appartenant à des origines différentes, cette image est une ressource cross-origin.

Pourquoi est-ce important ?

Les sites modernes utilisent souvent de nombreux services externes.

Plus une page dépend de contenus provenant d’autres origines, plus il devient important de savoir quelles ressources sont réellement autorisées à être intégrées.

COEP permet au navigateur de vérifier que certaines ressources externes respectent les conditions nécessaires avant de les intégrer à la page.

Configurer COEP

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

Cross-Origin-Embedder-Policy: require-corp

Avec cette valeur, le navigateur applique des règles strictes aux ressources provenant d’autres origines.

Si une ressource externe ne respecte pas les conditions nécessaires, le navigateur peut refuser de la charger.

Les principales valeurs

unsafe-none

N’impose pas de règle d’intégration supplémentaire. C’est le comportement le moins restrictif.

require-corp

Exige que les ressources cross-origin soient autorisées de manière adaptée avant de pouvoir être utilisées par la page.

credentialless

Permet certains chargements cross-origin sans envoyer certaines informations d’identification associées à la requête, comme des cookies.

Que signifie credentialless ?

Lorsqu’un navigateur contacte un autre site, une requête peut parfois contenir des informations liées à l’utilisateur, comme certains cookies.

Avec :

Cross-Origin-Embedder-Policy: credentialless

certains chargements cross-origin peuvent être effectués sans transmettre ces informations d’identification.

COEP, CORP et isolation cross-origin

Le lien avec CORP

COEP et Cross-Origin-Resource-Policy (CORP) sont étroitement liés, mais ils ne jouent pas le même rôle.

COEP est défini par la page qui souhaite charger des ressources externes.

CORP, de son côté, est défini par le serveur qui fournit la ressource et indique dans quelles conditions celle-ci peut être utilisée.

On peut donc résumer ainsi : COEP impose des conditions côté page, tandis que CORP indique les règles côté ressource.

Exemple concret

Imaginons qu’une page sur :

https://example.com

utilise :

Cross-Origin-Embedder-Policy: require-corp

et tente de charger une image depuis :

https://images.autre-site.fr/photo.jpg

Le navigateur vérifie alors si cette ressource peut être utilisée dans le contexte demandé.

Si les conditions nécessaires ne sont pas remplies, l’image peut être bloquée, même si son adresse est accessible.

COEP et COOP

COEP est également souvent utilisé avec Cross-Origin-Opener-Policy (COOP) .

Ensemble, ces mécanismes permettent de renforcer l’isolation d’une page vis-à-vis des autres origines.

Cette isolation plus forte peut notamment être nécessaire pour certaines fonctionnalités web avancées.

Bonnes pratiques et limites

Bonnes pratiques

  • Identifier toutes les ressources externes utilisées par le site.
  • Vérifier leur compatibilité avant d’activer une politique require-corp.
  • Vérifier la configuration CORP ou CORS des ressources provenant d’autres origines.
  • Tester les images, scripts, polices, vidéos et autres contenus externes après modification de la politique.
  • Examiner COEP avec COOP lorsqu’une isolation cross-origin renforcée est nécessaire.
  • Réexaminer la politique lorsque de nouveaux services externes ou de nouvelles ressources sont ajoutés au site.

Une politique stricte peut bloquer des ressources légitimes

COEP agit directement sur les ressources provenant d’autres origines.

Une image, une police, une vidéo, un script ou un autre contenu externe peut cesser de fonctionner si le serveur qui le fournit ne respecte pas les règles nécessaires.

Il faut donc identifier les ressources externes utilisées et vérifier leur compatibilité avant d’appliquer une politique stricte.

Une ressource bloquée ne signifie pas qu’il faut supprimer la protection.
Il faut d’abord vérifier pourquoi la ressource ne respecte pas les conditions nécessaires et adapter sa configuration ou celle du service qui la fournit.

Ce que COEP ne remplace pas

COEP contrôle certaines conditions d’intégration des ressources cross-origin, mais il ne sécurise pas l’ensemble du site à lui seul.

Il ne remplace notamment pas :

COEP constitue donc une couche supplémentaire d’isolation des ressources cross-origin et doit être configuré en tenant compte des ressources réellement utilisées par le site.

À retenir : COEP permet à une page d’imposer des règles plus strictes aux ressources provenant d’autres origines.
Si une ressource externe ne respecte pas les conditions nécessaires, le navigateur peut refuser de la charger, ce qui renforce l’isolation entre la page et les contenus externes.