A Google Keresési Központ tisztázott egy zavaros üzenetet, amelyet a Google Search Console a múlt héten küldött ki a SharedArrayBuffer problémákkal kapcsolatban. A Google emellett frissítette útmutatóját, amely lehetővé teszi a származások közötti elkülönítés engedélyezését.
Mi az a SharedArrayBuffer?
A SharedArrayBuffer, egyszerűen fogalmazva, a JavaScript működési kulisszái mögött van, amelyek segítik őket feladataik hatékony végrehajtásában.
A Mozilla webmunkások dokumentációja szerint:
“A webmunkások a webtartalom egyszerű eszközei a szkriptek futtatására háttérszálakban.”
És egy másik Mozilla fejlesztői oldal szerint:
“A SharedArrayBuffer használatával mindkét webmunkás, mindkét szál, ugyanabból a memóriarészből írhat adatokat és olvashat adatokat.”
A memória azért fontos, mert a JavaScript a böngésző memóriájával működik, és ha az oldal nem kezeli megfelelően, akkor ez olyan nem kívánt következményekhez vezethet, mint például a memória puffadása.
Hirdetés
Olvassa tovább az alábbiakban
A Mozilla fejlesztői oldala tovább magyarázza:
„Az ArrayBuffers lehetőséget nyújt arra, hogy bizonyos adatait manuálisan kezelje, annak ellenére, hogy Ön a JavaScript-ben dolgozik, amely automatikus memóriakezeléssel rendelkezik.
… Egy tipikus alkalmazásban a munkáról egyetlen egyén gondoskodik – a fő szál.
… És bizonyos körülmények között az ArrayBuffers csökkentheti a fő szál elvégzésének munkáját. ”
A továbbiakban azt magyarázza, hogy néha nem elég a munkát felosztani, és itt lépnek színre a fent említett webmunkások, akik ugyanazon a memóriarészen osztoznak.
A Google Martin Splitt így foglalta össze ezt 2017-ben, amikor a SharedArrayBuffers egy újabb szolgáltatás volt:
„A JavaScript egyszálú, és a hosszú futó parancsfájlok nem reagálnak az oldalra
A Webmunkások lehetővé teszik a JavaScript futtatását külön szálakban, üzenetekkel kommunikálva a fő szálral.
Azok az üzenetek, amelyek nagy mennyiségű adatot továbbítanak a TypedArrays vagy az ArrayBuffers alkalmazásban, nagy memóriaköltséget okoznak az adatok klónozása miatt
… A SharedArrayBuffers egy hamarosan megjelenő szolgáltatás, amely lehetővé teszi az adatok megosztását a szálak között. “
Hirdetés
Olvassa tovább az alábbiakban
Miért kapta meg a SharedArrayBuffer üzenetet?
A Google Search Central blogja elmagyarázza, hogy a kiadók a „titokzatos” üzenetet azért kapták, mert valami a weboldalukon található, a SharedArrayBuffers használatával, amely kódolási trükk a JavaScript-folyamatok felgyorsítására.
A Google szerint:
“A használat oka lehet a webhelyen található keretek, könyvtárak vagy más, harmadik féltől származó tartalom.”
Miért jelent problémát a SharedArrayBuffer (SAB)?
A SAB-k problematikussá váltak a Spectre és Meltdown biztonsági rések felfedezése után.
Ezek a biztonsági rések az összes számítógépes feldolgozó egységet (CPU-t) érintik, és lehetővé teszik a támadó számára, hogy elolvassa a memóriában tároltakat. A támadás minden számítógépes eszközt érint, beleértve a tárgyak internetét is.
A Chrome eredetileg felfüggesztette az SAB-ok használatát, de a folyamatot lényegében izoláló megoldás után újra engedélyezte őket.
A Chrome és a Firefox megváltoztatja a SharedArrayBuffers kezelésének módját
Az e-mail oka az volt, hogy megpróbálták felhívni a figyelmet arra, hogy a Chrome miként kezeli a SharedArrayBuffer-eket, és segíteni a kiadókat abban, hogy olyan folyamatokkal lépjenek fel, amelyek biztonságosabbá teszik webhelyeiket és webhelyeik látogatóit.
2021 május végén a Chrome 91 új korlátozással jelenik meg, amely erőteljesebb védelmet nyújt a Spectre és az Meltdown sebezhetőségei ellen.
„Kereszt-eredetű”A webhelyen kívülről származó forrásokra (például képek, CSS és JavaScript fájlok) történő hivatkozás.
Tehát mi folyik a Chrome 91-tel, és amire a Google megköveteli, az az erőforrásokra vonatkozó biztonsági irányelvek meghatározása és a Chrome (és a Firefox) irányelvei szerint megengedett tartalmak lezárása a webhely látogatóinak és a megjelenítőknek a Spectre sebezhetőség elleni védelme érdekében.
Ez jó a webhely látogatóinak, de rossz lehet azoknak a webhelykiadóknak, akik a SharedArrayBuffer objektumokat kereszt-eredet nélküli izoláció nélkül használják.
A Google pontosítása szerint (hivatkozva a Chrome 91-es verziójára):
„… a származási helyek közötti elkülönítést szabványosították a SharedArrayBuffer objektum biztonságos engedélyezésének módjaként. A 91-es verziótól kezdve, amelyet 2021 május végén terveznek kiadni, a Chrome át fogja vezetni a SharedArrayBuffer objektumot a kereszt eredetének elkülönítése mögött.
… A Chrome 91 kiadása után a SharedArrayBuffer objektum kereszt-eredetű elkülönítés nélkül már nem fog működni. ”
Hirdetés
Olvassa tovább az alábbiakban
Mit kell tennie a SharedArrayBuffer probléma elhárításához
Két feladatot kell elvégezni.
- Azonosítsa a SAB használatát a webhelyén.
- Javítsa vagy távolítsa el a funkcionalitást
Az SAB használatának azonosítása
A Google az alábbi lépéseket javasolja a SharedArrayBuffers azonosításához:
„Két lehetőséged van:
Használja a Chrome DevTools alkalmazást, és ellenőrizze a fontos oldalakat.
(Haladó) A Reporting API használatával elavulási jelentéseket küldhet egy jelentési végpontnak.
Tanulja meg, hogyan alkalmazhatja a fenti megközelítéseket: Itt megtudhatja, hogy a SharedArrayBuffer webhelyet hol használják. “
A Google útmutatója a származás közötti elkülönítésről útmutatást nyújt a Chrome Dev Tools használatához a SharedArrayBuffers használatának azonosításához.
- „Nyissa meg a Chrome DevTools alkalmazást azon az oldalon, amelyről feltételezi, hogy a SharedArrayBuffer programot használja.
- Válassza a Konzol panelt.
- Ha az oldal SharedArrayBuffer programot használ, akkor a következő üzenet jelenik meg:
[Deprecation] SharedArrayBuffer will require cross-origin isolation as of M91, around May 2021. See https://developer.chrome.com/blog/enabling-shared-array-buffer/ for more details. common-bundle.js:535- Az üzenet végén található fájlnév és sorszám (például common-bundle.js: 535) jelzi, hogy honnan származik a SharedArrayBuffer. Ha ez egy harmadik féltől származó könyvtár, akkor forduljon a fejlesztőhöz a probléma megoldásához. Ha a webhelye részeként valósítja meg, akkor kövesse az alábbi útmutatót a kereszt származás elkülönítésének engedélyezéséhez. “
Hirdetés
Olvassa tovább az alábbiakban
Link: Hogyan lehet engedélyezni a kereszt-eredetű elkülönítést
Sok bevihető
Ezt nagyon sokat kell vállalni, mert jelentős mennyiségű fejlesztési szakzsargont és rövidítést kell megjegyezni.
A különféle fejlesztői oldalakat nehéz megérteni, mert hajlamosak több rövidítést definiálni 2000 szócikk elején, majd kizárólag a rövidítésekre utalnak, anélkül, hogy a cikk egészében további magyarázatot adnának, mintha az olvasó képes lenne megtartani a COEP jelentését, ill. COOP.
Idézetek
Hivatalos Google-pontosítás:
Pontosítás a SharedArrayBuffer objektumüzenetről
Biztonsági fejléc háttérinformációs erőforrása: ScottHelme.co.uk
COEP COOP CORP CORS CORB – CRAP Ez egy csomó új dolog!
A Mozilla fejlesztői oldala arról, hogy mi a SharedArrayBuffers:
Rajzfilmbevezetés az ArrayBuffers és a SharedArrayBuffers oldalakba
A Google fejlesztői oldala a származási helyek közötti izoláció elemzéséről
Útmutató a kereszt-eredetű izoláció elemzéséhez
A Google fejlesztői oldala a kereszt-eredet elkülönítésének engedélyezéséről
Hogyan lehet engedélyezni a kereszt-eredetű elkülönítést