Window: crossOriginIsolated-Eigenschaft
Die crossOriginIsolated schreibgeschützte Eigenschaft der Window-Schnittstelle gibt einen booleschen Wert zurück, der anzeigt, ob das Dokument Cross-Origin isoliert ist.
Ein Cross-Origin isoliertes Dokument teilt seine Browsing-Kontext-Gruppe nur mit gleich originären Dokumenten in Popups und Navigationen sowie Ressourcen (sowohl gleich als auch Cross-Origin), für die das Dokument die Nutzung über CORS (und COEP für <iframe>) ausgewählt hat. Die Beziehung zwischen einem Cross-Origin-Opener des Dokuments oder beliebigen Cross-Origin-Popups, die es öffnet, wird getrennt. Das Dokument kann auch in einem separaten Betriebssystemprozess zusammen mit anderen Dokumenten gehostet werden, mit denen es durch Arbeiten im gemeinsam genutzten Speicher kommunizieren kann. Dies verringert das Risiko von Side-Channel-Angriffen und Cross-Origin-Angriffen, die als XS-Leaks bezeichnet werden.
Cross-Origin isolierte Dokumente arbeiten mit weniger Einschränkungen bei der Verwendung der folgenden APIs:
SharedArrayBufferkann erstellt und über einen Aufruf vonWindow.postMessage()oderMessagePort.postMessage()gesendet werden.Performance.now()bietet eine bessere Präzision.Performance.measureUserAgentSpecificMemory()kann aufgerufen werden.
Ein Dokument wird Cross-Origin 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-corpodercredentialless.
Der Zugriff auf die APIs muss auch durch die Permissions-Policy cross-origin-isolated erlaubt werden.
Andernfalls wird die crossOriginIsolated-Eigenschaft false zurückgeben, und das Dokument wird nicht in der Lage sein, die oben aufgeführten APIs mit reduzierten Einschränkungen zu verwenden.
Wert
Ein boolescher Wert.
Beispiele
>Cross-Origin-Isolierung eines Dokuments
Um ein Dokument Cross-Origin zu isolieren:
-
Setzen Sie den
Cross-Origin-Opener-PolicyHTTP-Header aufsame-origin:httpCross-Origin-Opener-Policy: same-origin -
Setzen Sie den
Cross-Origin-Embedder-PolicyHTTP-Header aufrequire-corpodercredentialless: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-Erlaubnisliste der Direktiveselfist, sodass die Berechtigung standardmäßig Cross-Origin isolierten Dokumenten erteilt wird.
Prüfen, ob das Dokument Cross-Origin 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
| Spezifikation |
|---|
| HTML> # dom-crossoriginisolated-dev> |