Durch die ursprungsübergreifende Isolierung kann eine Webseite leistungsstarke Funktionen wie „SharedArrayBuffer“ verwenden. In diesem Artikel wird erläutert, wie Sie die ursprungsübergreifende Isolierung auf Ihrer Website aktivieren.
In dieser Anleitung erfahren Sie, wie Sie die ursprungsübergreifende Isolierung aktivieren. Die ursprungsübergreifende
Isolierung ist erforderlich, wenn Sie
SharedArrayBuffer,
performance.measureUserAgentSpecificMemory(),
oder einen hochauflösenden Timer mit besserer Genauigkeit verwenden möchten.
Wenn Sie die ursprungsübergreifende Isolierung aktivieren möchten, prüfen Sie, welche Auswirkungen dies auf andere ursprungsübergreifende Ressourcen auf Ihrer Website hat, z. B. auf Anzeigenflächen.
Ermitteln, wo auf Ihrer Website SharedArrayBuffer verwendet wird
Ab Chrome 92 funktionieren Funktionen, die SharedArrayBuffer
nicht mehr ohne ursprungsübergreifende Isolierung. Wenn Sie aufgrund einer SharedArrayBuffer Einstellungsbenachrichtigung auf dieser Seite gelandet sind, wird SharedArrayBuffer wahrscheinlich entweder
auf Ihrer Website oder in einer der eingebetteten Ressourcen verwendet.
Damit aufgrund der Einstellung nichts auf Ihrer Website beschädigt wird, müssen Sie zuerst
ermitteln, wo es verwendet wird.
Wenn Sie nicht sicher sind, wo auf Ihrer Website SharedArrayBuffer verwendet wird, haben Sie zwei Möglichkeiten, dies herauszufinden:
- Chrome-Entwicklertools verwenden
- Erweiterte Option: Einstellungsberichte verwenden
Wenn Sie bereits wissen, wo Sie SharedArrayBuffer verwenden, springen Sie zu Auswirkungen der ursprungsübergreifenden Isolierung analysieren.
Chrome-Entwicklertools verwenden
Mit den Chrome-Entwicklertools können Entwickler Websites untersuchen.
- Öffnen Sie die Chrome
Entwicklertools auf der Seite, auf der Sie vermuten, dass
SharedArrayBufferverwendet wird. - Wählen Sie den Bereich Konsole aus.
- Wenn die Seite
SharedArrayBufferverwendet, wird die folgende Meldung angezeigt:[Deprecation] SharedArrayBuffer will require cross-origin isolation as of M92, around May 2021. See for more details. common-bundle.js:535
- Der Dateiname und die Zeilennummer am Ende der Meldung (z. B.
common-bundle.js:535) geben an, woher dieSharedArrayBufferstammt. Wenn es sich um eine Drittanbieterbibliothek handelt, wenden Sie sich an den Entwickler, um das Problem zu beheben. Wenn sie als Teil Ihrer Website implementiert ist, folgen Sie der Anleitung unten, um die ursprungsübergreifende Isolierung zu aktivieren.
Erweiterte Option: Einstellungsberichte verwenden
Einige Browser haben eine Berichtsfunktion für die Einstellung von APIs an einen bestimmten Endpunkt.
- Richten Sie einen Server für Einstellungsberichte ein und rufen Sie die Berichts URL ab. Sie können dies erreichen, indem Sie entweder einen öffentlichen Dienst verwenden oder selbst einen erstellen.
- Legen Sie mit der URL den folgenden HTTP-Header für Seiten fest, die möglicherweise
bereitstellen
SharedArrayBuffer.Report-To: {"group":"default","max_age":86400,"endpoints":[{"url":"THE_DEPRECATION_ENDPOINT_URL"}]} - Sobald der Header weitergegeben wird, sollten am registrierten Endpunkt Einstellungsberichte erfasst werden.
Beispielimplementierung ansehen
Auswirkungen der ursprungsübergreifenden Isolierung analysieren
Wäre es nicht toll, wenn Sie die Auswirkungen der Aktivierung der ursprungsübergreifenden Isolierung auf Ihre Website bewerten könnten, ohne etwas zu beschädigen? Mit den
Cross-Origin-Opener-Policy-Report-Only und
Cross-Origin-Embedder-Policy-Report-Only
HTTP-Headern ist genau das möglich.
- Legen Sie
Cross-Origin-Opener-Policy-Report-Only: same-originfür Ihr Dokument der obersten Ebene fest. Wie der Name schon sagt, sendet dieser Header nur Berichte über die Auswirkungen, dieCOOP: same-originhätte auf Ihre Website hätte. Die Kommunikation mit Pop-up-Fenstern wird dadurch nicht deaktiviert. - Richten Sie die Berichterstellung ein und konfigurieren Sie einen Webserver, um die Berichte zu empfangen und zu speichern.
- Legen Sie
Cross-Origin-Embedder-Policy-Report-Only: require-corpfür Ihr Dokument der obersten Ebene fest. Auch mit diesem Header können Sie die Auswirkungen der Aktivierung vonCOEP: require-corpsehen, ohne die Funktion Ihrer Website zu beeinträchtigen. Sie können diesen Header so konfigurieren, dass Berichte an denselben Berichtsserver gesendet werden, den Sie im vorherigen Schritt eingerichtet haben.
Auswirkungen der ursprungsübergreifenden Isolierung minimieren
Nachdem Sie ermittelt haben, welche Ressourcen von der ursprungsübergreifenden Isolierung betroffen sind, finden Sie hier allgemeine Richtlinien, wie Sie sich für diese ursprungsübergreifenden Ressourcen anmelden:
- Legen Sie für ursprungsübergreifende Ressourcen wie Bilder, Skripts, Stylesheets und iFrames und
andere den
Cross-Origin-Resource-Policy:cross-originHeader fest. Legen Sie für Ressourcen auf derselben Website denCross-Origin-Resource-Policy:same-siteHeader fest. - Für Ressourcen, die mit CORS geladen werden können, muss
CORS aktiviert sein. Legen Sie dazu das
crossoriginAttribut im HTML-Tag fest (z. B.<img src="example.jpg" crossorigin>). Bei JavaScript-Abrufanfragen mussrequest.modeaufcorsgesetzt sein. - Wenn Sie leistungsstarke Funktionen wie
SharedArrayBufferin einem geladenen iFrame verwenden möchten, fügen Sieallow="cross-origin-isolated"zu dem<iframe>hinzu. - Wenn ursprungsübergreifende Ressourcen, die in iFrames oder Worker-Skripts geladen werden, eine weitere Ebene von iFrames oder Worker-Skripts umfassen, wenden Sie die in diesem Abschnitt beschriebenen Schritte rekursiv an, bevor Sie fortfahren.
- Sobald Sie bestätigt haben, dass alle ursprungsübergreifenden Ressourcen angemeldet sind, legen Sie den Header
Cross-Origin-Embedder-Policy: require-corpfür iFrames und Worker-Skripts fest. Dies ist unabhängig davon erforderlich, ob es sich um Ressourcen desselben Ursprungs oder ursprungsübergreifende Ressourcen handelt. - Es dürfen keine ursprungsübergreifenden Pop-up-Fenster vorhanden sein, die eine Kommunikation über
postMessage()erfordern. Wenn die ursprungsübergreifende Isolierung aktiviert ist, können sie nicht mehr verwendet werden. Sie können die Kommunikation zu einem anderen Dokument verschieben, das nicht ursprungsübergreifend isoliert ist, oder eine andere Kommunikationsmethode verwenden (z. B. HTTP-Anfragen).
Ursprungsübergreifende Isolierung aktivieren
Nachdem Sie die Auswirkungen der ursprungsübergreifenden Isolierung minimiert haben, finden Sie hier allgemeine Richtlinien zum Aktivieren der ursprungsübergreifenden Isolierung:
- Legen Sie den Header
Cross-Origin-Opener-Policy: same-originfür Ihr Dokument der obersten Ebene fest. Wenn SieCross-Origin-Opener-Policy-Report-Only: same-originfestgelegt haben, ersetzen Sie ihn. Dadurch wird die Kommunikation zwischen Ihrem Dokument der obersten Ebene und den zugehörigen Pop-up-Fenstern blockiert. - Legen Sie den Header
Cross-Origin-Embedder-Policy: require-corpfür Ihr Dokument der obersten Ebene fest. Wenn SieCross-Origin-Embedder-Policy-Report-Only: require-corpfestgelegt haben, ersetzen Sie ihn. Dadurch wird das Laden von ursprungsübergreifenden Ressourcen blockiert, die nicht angemeldet sind. - Prüfen Sie, ob
self.crossOriginIsolatedin der Konsoletruezurückgibt, um zu bestätigen, dass Ihre Seite ursprungsübergreifend isoliert ist.