Man kann sagen, dass das Land von SharedArrayBuffer
auf der
aber die Dinge beruhigen sich. Dazu sollten Sie Folgendes wissen:
Kurz zusammengefasst
SharedArrayBuffer
wird derzeit in Firefox 79 und höher unterstützt, ist aber bald auch für Android verfügbar Chrome 88. Sie ist jedoch nur für Seiten verfügbar, die ursprungsübergreifend isoliert sind.SharedArrayBuffer
ist derzeit in der Desktopversion von Chrome verfügbar, aber ab Chrome 92 auf ursprungsübergreifende isolierte Seiten beschränkt. Wenn Sie nicht der Meinung sind, Wenn Sie diese Änderung später vornehmen können, können Sie sich für einen Ursprungstest registrieren, um das aktuelle Verhalten mindestens bis Chrome beizubehalten. 113.- Wenn Sie die ursprungsübergreifende Isolierung aktivieren, um weiterhin
SharedArrayBuffer
bewertet die Auswirkungen auf andere ursprungsübergreifende Conversions Elemente auf Ihrer Website, wie z. B. Anzeigen-Placements. Prüfen, obSharedArrayBuffer
wird von Ihren Drittanbieter-Ressourcen genutzt, um die Auswirkungen und Anleitung.
Übersicht über die ursprungsübergreifende Isolierung
Sie können eine Seite ursprungsübergreifend isoliert machen, indem Sie sie mit diesen Header:
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin
Danach kann Ihre Seite nur noch ursprungsübergreifender Content laden,
Die Ressource lässt dies explizit über einen Cross-Origin-Resource-Policy
zu
Header oder CORS-Header
(Access-Control-Allow-*
usw.).
Es gibt auch eine Reporting API,
Daten zu Anfragen erheben, die infolge eines
Cross-Origin-Embedder-Policy
und Cross-Origin-Opener-Policy
.
Wenn Sie der Meinung sind, dass Sie diese Änderungen nicht rechtzeitig in Chrome 92 vornehmen können, Für einen Ursprungstest registrieren, um die aktuelle Version von Chrome für Computer beizubehalten bis Chrome 113 verfügbar.
Weitere Informationen finden Sie unten auf dieser Seite im Abschnitt Weitere Informationen. finden Sie weitere Anleitungen und Informationen zur ursprungsübergreifenden Isolierung.
Wie haben wir das erreicht?
SharedArrayBuffer
ist jetzt auch für Chrome 60 verfügbar (also Juli 2017).
statt der Chrome-Versionen die Zeit in Datumsangaben zu berücksichtigen, und alles war großartig.
Für 6 Monate.
Im Januar 2018 wurde eine Sicherheitslücke in einigen beliebten CPUs aufgedeckt. Weitere Informationen finden Sie in der Ankündigung um alle Details zu sehen, bedeutete aber im Wesentlichen, dass der Code zum Lesen des Arbeitsspeichers, auf den sie keinen Zugriff haben sollte.
Dies war für uns Browseranbieter ein Problem, da wir Websites erlauben möchten, in Form von JavaScript und WASM erstellen, aber streng den Speicher kontrollieren, auf den Code zugreifen kann. Wenn Sie meine Website besuchen, sollte ich nicht in der Lage sein, aus der Onlinebanking-Website, die Sie geöffnet haben. Eigentlich sollte ich und wissen, dass Sie Ihr Onlinebanking geöffnet haben. Dies sind die Grundlagen Websicherheit.
Um dies zu vermeiden, haben wir die Auflösung unserer hochauflösenden Timer reduziert,
als performance.now()
. Du kannst jedoch einen Timer mit hoher Auflösung erstellen, indem du
SharedArrayBuffer
durch Ändern des Arbeitsspeichers in einer engen Schleife in einem Worker und Lesen von
in einem anderen Thread. Dies könnte nicht effektiv abgemildert werden,
auf gut beabsichtigten Code auswirkt. Daher wurde SharedArrayBuffer
deaktiviert.
gesprochen.
Eine allgemeine Abhilfemaßnahme besteht darin, sicherzustellen, dass der Systemprozess einer Webseite keine sensible Daten von anderen Quellen. Chrome hatte in ein Multi-Prozess-System Architektur von Anfang an (erinnern Sie sich?), aber es gab auch dennoch Fälle, in denen Daten von mehreren Websites im selben Prozess landen:
<iframe src="https://your-bank.example/balance.json"></iframe>
<script src="https://your-bank.example/balance.json"></script>
<link rel="stylesheet" href="https://your-bank.example/balance.json" />
<img src="https://your-bank.example/balance.json" />
<video src="https://your-bank.example/balance.json"></video>
<!-- …and more… -->
Diese APIs haben ein „Legacy“. das es ermöglicht, dass Inhalte anderer Herkunft ohne Opt-in von der anderen Quelle verwendet werden. Diese Anfragen erfolgen über die Cookies des anderen Ursprungs, sodass es vollständig „angemeldet“ ist Heutzutage gibt es Für APIs muss der andere Ursprung die Aktivierung mithilfe von CORS
Wir haben diese veralteten APIs umgangen, indem wir verhinderten, dass Inhalte in den im Prozess der Webseite verarbeitet, wenn diese "falsch" aussieht, und sie als ursprungsübergreifende Leseblockierung bezeichnet wird. In den oben genannten Fällen dürfen JSON nicht in den Prozess eindringen, für eine dieser APIs ein gültiges Format. Das heißt, außer iFrames. Für iFrames den Inhalt in einen anderen Prozess verschieben.
Nach diesen Schutzmaßnahmen haben wir SharedArrayBuffer
wieder in Chrome eingeführt.
68 (Juli 2018), aber nur auf dem Computer. Aufgrund der zusätzlichen Prozessanforderungen
auf Mobilgeräten nicht möglich war. Es wurde auch darauf hingewiesen, dass die Lösung von Chrome
unvollständig, da nur "inkorrekt" blockiert wurde. Datenformate, während es
möglich (sehr ungewöhnlich), dass gültige CSS/JS/Bilder unter erratenden URLs
private Daten enthalten.
Web-Standards entwickelten gemeinsam eine umfassendere browserübergreifende
Lösung. Die Lösung bestand darin, Seiten die Möglichkeit zu geben,
Möglichkeit, Inhalte anderer Herkunft ohne deren Zustimmung in den Prozess zu integrieren.
Diese Deklaration erfolgt über COOP- und COEP-Header.
die mit der Seite ausgeliefert werden. Der Browser erzwingt dies und im Gegenzug erhält die Seite
Zugriff auf SharedArrayBuffer
und andere APIs mit ähnlichen Berechtigungen. Andere Ursprünge
für das Einbetten von Inhalten über
Cross-Origin-Resource-Policy
oder CORS.
Diese Einschränkung wurde von Firefox als erstes Gerät für SharedArrayBuffer
eingeführt: in
Version 79 (Juli 2020).
Dann habe ich diesen Artikel im Januar 2021 geschrieben und du hast ihn gelesen. Hallo.
Und das ist der aktuelle Punkt. Mit Chrome 88 kannst du SharedArrayBuffer
wieder nutzen
Android für ursprungsübergreifende isolierte Seiten und Chrome 92 bietet dieselben
Anforderungen an Desktop-Computer, sowohl für Konsistenz als auch für eine
Isolation.
Umstellung von Chrome auf dem Computer verzögern
Dies ist eine vorübergehende Ausnahme in Form eines Ursprungstests die Menschen
mehr Zeit für die Implementierung ursprungsübergreifend isolierter Seiten. Sie ermöglicht
SharedArrayBuffer
verwenden, ohne dass die Seite ursprungsübergreifend isoliert sein muss. Die
die Ausnahme läuft in Chrome 113 ab und die Ausnahme gilt nur für Computer
Chrome
- Fordern Sie ein Token für Ihren Ursprung an.
- Fügen Sie das Token zu Ihren Seiten hinzu. Dafür gibt es zwei Möglichkeiten:
<ph type="x-smartling-placeholder">
- </ph>
- Fügen Sie im Header jeder Seite ein
origin-trial
-<meta>
-Tag ein. Beispiel: kann dies etwa so aussehen:
<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
- Wenn Sie Ihren Server konfigurieren können, können Sie auch das Token hinzufügen.
mit einem
Origin-Trial
-HTTP-Header. Der resultierende Antwortheader sollte Sie sehen in etwa so aus:
Origin-Trial: TOKEN_GOES_HERE
- Fügen Sie im Header jeder Seite ein
Weitere Informationen
- Leitfaden zum Aktivieren der ursprungsübergreifenden Isolierung
- Seiten ursprungsübergreifend isolieren
- Warum ist die ursprungsübergreifende Isolierung erforderlich?
Bannerfoto von Daniel Gregoire auf Unsplash