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-Opener-Policy (COOP)

Mieux isoler une page web des pages provenant d’autres origines lorsqu’elles sont ouvertes dans des fenêtres ou onglets séparés.

Comprendre Cross-Origin-Opener-Policy

Lorsqu’une page web ouvre une autre page dans une nouvelle fenêtre ou dans un nouvel onglet, les deux pages peuvent parfois conserver une forme de relation entre elles.

Cross-Origin-Opener-Policy, souvent abrégé en COOP, permet de demander au navigateur de mieux séparer les pages lorsqu’elles proviennent d’origines différentes.

L’objectif est de limiter certaines interactions entre des pages qui n’ont pas besoin de partager le même contexte de navigation.

Qu’est-ce qu’une origine ?

Dans le navigateur, une origine correspond principalement à la combinaison du protocole, du nom de domaine et du port.

Par exemple :

https://example.com

et :

https://autre-site.fr

appartiennent à deux origines différentes.

Le terme cross-origin signifie donc simplement : entre deux origines différentes.

Configurer COOP

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

Cross-Origin-Opener-Policy: same-origin

Cette valeur demande au navigateur d’isoler davantage la page des documents provenant d’une autre origine.

En pratique, les pages appartenant à la même origine peuvent continuer à fonctionner ensemble, tandis que les pages provenant d’une autre origine sont davantage séparées.

Les principales valeurs

unsafe-none

N’impose pas d’isolation particulière. C’est le comportement le moins restrictif.

same-origin

Isole la page des documents provenant d’une autre origine. C’est la valeur adaptée lorsqu’une isolation forte est recherchée.

same-origin-allow-popups

Conserve une isolation importante, tout en permettant certains scénarios où la page doit ouvrir des fenêtres provenant d’autres origines.

Exemple concret

Imaginons que le site :

https://example.com

ouvre une fenêtre vers :

https://service-externe.fr

Avec une politique COOP adaptée, le navigateur peut séparer plus strictement les deux contextes de navigation, ce qui réduit certaines possibilités d’interaction entre les deux sites.

COOP, fenêtres externes et isolation cross-origin

Certains sites doivent ouvrir des services externes

L’ouverture d’une fenêtre externe n’est pas forcément anormale.

Certains sites utilisent ce fonctionnement pour des services comme :

  • une authentification externe ;
  • un système de paiement ;
  • une connexion à un service tiers ;
  • certaines interfaces ouvertes dans une fenêtre séparée.

Une politique trop restrictive peut donc perturber certaines de ces fonctionnalités.

Il faut choisir une politique correspondant réellement aux interactions nécessaires, plutôt que supprimer l’isolation par facilité.

COOP fait partie d’un ensemble de protections

COOP est souvent associé à deux autres en-têtes :

Ces mécanismes sont complémentaires : ils ne contrôlent pas exactement la même chose, mais peuvent être combinés pour renforcer l’isolation entre différentes origines.

Bonnes pratiques et limites

Bonnes pratiques

  • Mettre en place une politique COOP adaptée au fonctionnement réel du site.
  • Vérifier si le site a réellement besoin d’interagir avec des fenêtres provenant d’autres origines.
  • Utiliser same-origin lorsqu’une isolation forte est recherchée et que les interactions cross-origin ne sont pas nécessaires.
  • Envisager same-origin-allow-popups lorsque certains scénarios avec des fenêtres externes doivent rester fonctionnels.
  • Tester les systèmes d’authentification, de paiement et les autres services externes utilisant des fenêtres séparées.
  • Réexaminer la politique lorsque le fonctionnement des services externes évolue.

Une politique stricte peut modifier le comportement du site

COOP agit directement sur la manière dont certaines fenêtres et certains documents sont regroupés par le navigateur.

Une modification de la politique peut donc avoir un effet sur les fonctionnalités reposant sur des fenêtres externes ou des interactions entre plusieurs pages.

Le bon objectif est d’isoler ce qui n’a pas besoin d’interagir.
Si une interaction cross-origin est réellement nécessaire, la politique doit être adaptée à ce besoin précis, tout en conservant le niveau d’isolation le plus élevé possible.

Ce que COOP ne remplace pas

COOP améliore l’isolation entre certains contextes de navigation, mais il ne sécurise pas l’ensemble du site à lui seul.

Il ne remplace notamment pas :

  • Content-Security-Policy (CSP) ;
  • CORP et COEP lorsque ces mécanismes sont nécessaires ;
  • HTTPS ;
  • la sécurité du code ;
  • les autres protections nécessaires au site.

COOP constitue donc une protection supplémentaire pour isoler les contextes de navigation et doit être configuré en fonction des interactions réellement nécessaires entre les pages.

À retenir : COOP permet de mieux isoler une page web des pages provenant d’autres origines lorsqu’elles sont ouvertes dans des fenêtres ou onglets distincts.
Une politique adaptée permet de réduire les interactions cross-origin qui ne sont pas nécessaires tout en conservant celles dont le site a réellement besoin.