Window: crossOriginIsolated-Eigenschaft
Die crossOriginIsolated
schreibgeschützte Eigenschaft der Window
-Schnittstelle gibt einen booleschen Wert zurück, der anzeigt, ob das Dokument quellenübergreifend isoliert ist.
Ein quellenübergreifend isoliertes Dokument teilt seine Browsing-Kontextgruppe nur mit gleichoriginigen Dokumenten in Pop-ups und Navigationen sowie mit Ressourcen (sowohl gleichoriginig als auch quellenübergreifend), die das Dokument über CORS (und COEP für <iframe>
) aktiviert hat.
Die Beziehung zwischen einem quellenübergreifenden Öffner des Dokuments oder jeglichen quellenübergreifenden Pop-ups, die es öffnet, wird getrennt.
Das Dokument kann auch in einem separaten Betriebssystemprozess gehostet werden, zusammen mit anderen Dokumenten, mit denen es durch den Betrieb auf gemeinsam genutztem Speicher kommunizieren kann.
Dies verringert das Risiko von Nebenkanalangriffen und quellenübergreifenden Angriffen, die als XS-Leaks bekannt sind.
Quellenübergreifend isolierte Dokumente arbeiten mit weniger Einschränkungen, wenn die folgenden APIs verwendet werden:
SharedArrayBuffer
kann erstellt und über einenWindow.postMessage()
- oder einenMessagePort.postMessage()
-Aufruf gesendet werden.Performance.now()
bietet bessere Präzision.Performance.measureUserAgentSpecificMemory()
kann aufgerufen werden.
Ein Dokument wird quellenübergreifend isoliert, wenn es mit einer HTTP-Antwort zurückgegeben wird, die die Header enthält:
Cross-Origin-Opener-Policy
-Header mit der Direktivesame-origin
.Cross-Origin-Embedder-Policy
-Header mit der Direktiverequire-corp
odercredentialless
.
Der Zugriff auf die APIs muss auch durch die Permissions-Policy
cross-origin-isolated
erlaubt sein.
Andernfalls wird die crossOriginIsolated
-Eigenschaft false
zurückgeben, und das Dokument kann die oben aufgeführten APIs nicht mit reduzierten Einschränkungen verwenden.
Wert
Ein boolescher Wert.
Beispiele
Ein Dokument quellenübergreifend isolieren
Um ein Dokument quellenübergreifend zu isolieren:
-
Setzen Sie den
Cross-Origin-Opener-Policy
-HTTP-Header aufsame-origin
:httpCross-Origin-Opener-Policy: same-origin
-
Setzen Sie den
Cross-Origin-Embedder-Policy
-HTTP-Header aufrequire-corp
odercredentialless
:httpCross-Origin-Embedder-Policy: require-corp Cross-Origin-Embedder-Policy: credentialless
-
Die
cross-origin-isolated
-Direktive desPermissions-Policy
-Headers darf den Zugriff auf die Funktion nicht blockieren. Beachten Sie, dass die Standard-Zulassungsliste der Direktiveself
ist, sodass die Berechtigung standardmäßig für quellenübergreifend isolierte Dokumente gewährt wird.
Überprüfen, ob das Dokument quellenübergreifend isoliert ist
const myWorker = new Worker("worker.js");
if (window.crossOriginIsolated) {
const buffer = new SharedArrayBuffer(16);
myWorker.postMessage(buffer);
} else {
const buffer = new ArrayBuffer(16);
myWorker.postMessage(buffer);
}
Spezifikationen
Specification |
---|
HTML Standard # dom-crossoriginisolated-dev |
Browser-Kompatibilität
BCD tables only load in the browser