Window : propriété crossOriginIsolated
La propriété en lecture seule crossOriginIsolated de l'interface Window retourne une valeur booléenne qui indique si le document est isolé inter-origine.
Un document isolé inter-origine ne partage son groupe de contexte de navigation qu'avec des documents de même origine dans les fenêtres s'ouvrant par-dessus et les navigations, ainsi qu'avec les ressources (de même origine ou inter-origine) que le document a choisi d'utiliser CORS (et COEP pour <iframe>).
La relation entre un ouvreur inter-origine du document ou toute fenêtre s'ouvrant par-dessus inter-origine qu'il ouvre est rompue.
Le document peut aussi être hébergé dans un processus système séparé avec d'autres documents avec lesquels il peut communiquer en opérant sur une mémoire partagée.
Cela réduit le risque d'attaques par canaux auxiliaires et d'attaques inter-origine appelées XS-Leaks (angl.).
Les documents isolés inter-origine fonctionnent avec moins de restrictions lors de l'utilisation des API suivantes :
SharedArrayBufferpeut être créé et transmis par un appel àWindow.postMessage()ouMessagePort.postMessage().Performance.now()offre une meilleure précision.Performance.measureUserAgentSpecificMemory()peut être appelé.
Un document sera isolé inter-origine s'il est retourné avec une réponse HTTP qui inclut les en-têtes suivants :
- L'en-tête
Cross-Origin-Opener-Policyavec la directivesame-origin. - L'en-tête
Cross-Origin-Embedder-Policyavec la directiverequire-corpoucredentialless.
L'accès aux API doit aussi être autorisé par la politique de permissions Permissions-Policy cross-origin-isolated.
Sinon, la propriété crossOriginIsolated retournera false et le document ne pourra pas utiliser les API listées ci-dessus avec des restrictions réduites.
Valeur
Une valeur booléenne.
Exemples
>Isoler un document inter-origine
Pour isoler un document inter-origine :
-
Définir l'en-tête HTTP
Cross-Origin-Opener-Policyàsame-origin:httpCross-Origin-Opener-Policy: same-origin -
Définir l'en-tête HTTP
Cross-Origin-Embedder-Policyàrequire-corpoucredentialless:httpCross-Origin-Embedder-Policy: require-corp Cross-Origin-Embedder-Policy: credentialless -
La directive
cross-origin-isolatedde l'en-têtePermissions-Policyne doit pas empêcher l'accès à la fonctionnalité. Notez que la liste autorisée par défaut de la directive estself, donc l'autorisation sera accordée par défaut aux documents isolés inter-origine.
Vérifier si le document est isolé inter-origine
const monWorker = new Worker("worker.js");
if (window.crossOriginIsolated) {
const tampon = new SharedArrayBuffer(16);
monWorker.postMessage(tampon);
} else {
const tampon = new ArrayBuffer(16);
monWorker.postMessage(tampon);
}
Spécifications
| Specification |
|---|
| HTML> # dom-crossoriginisolated-dev> |
Compatibilité des navigateurs
Voir aussi
- La propriété
WorkerGlobalScope.crossOriginIsolated