A Google bemutatja a Chrome 90 web böngésző kiadását. Ugyanakkor elérhető a Chromium szabad projekt stabil verziója, amely a Chrome alapját képezi. A Chrome böngésző a Google logóinak használatával, a rendszerrel, amely értesítéseket küld a leállások esetén, a védett videótartalmak (DRM) lejátszására szolgáló modulokkal, az automatikus frissítések telepítésével és az RLZ-paraméterek keresés közbeni átadásával rendelkezik. A következő kiadás, a Chrome 91, május 25-én várható.
A Chrome 90 főbb változásai:
- Minden felhasználó számára alapértelmezetten engedélyezett a HTTPS protokollal való weboldal megnyitása a címmezőbe beírt host nevek esetén. Például, ha az example.com hostot írjuk be, alapértelmezetten a https://example.com oldal nyílik meg, ám ha a megnyitás során problémák adódnak, visszaáll a http://example.com-ra. A https:// használatának kezelésére javasolt a ‘chrome://flags#omnibox-default-typed-navigations-to-https’ beállítás.
- Megvalósult az ablakok címkézési lehetősége, ami megkönnyíti azok vizuális megkülönböztetését a munkaterületen. Az ablak nevének módosításának támogatása segíti a munka szervezését, amikor különböző böngészőablakokat használunk különböző feladatokhoz, például munkahelyi feladatokhoz, személyes érdeklődésekhez, szórakozáshoz, elhalasztott tartalmakhoz stb. A név megváltoztatása a „Nevet hozzáadása” menüpontból történik, amely a jobb egérgombbal a lapok sávjának üres területére kattintva érhető el. A név megváltoztatása után az alkalmazások panelén a aktív fül címe helyett a kiválasztott név jelenik meg, ami hasznos lehet, ha azonos weboldalakat nyitunk meg különböző ablakokban, amelyek külön fiókokhoz vannak rendelve. A név hozzárendelése a munkamenetek között megmarad, és az ablakok újraindítása után a kiválasztott nevekkel lesznek helyreállítva.

- Hozzáadva a lehetőség, hogy elrejtsük a "Olvasási lista" (Reading List) funkciót anélkül, hogy meg kellene változtatni a beállításokat a "chrome://flags"-ban ("chrome://flags#read-later"). Az elrejtéshez mostantól a böngésző könyvjelzősávján jobb kattintással megjelenő helyi menü alján található "Olvasási lista megjelenítése" opciót használhatjuk. Emlékeztetünk arra, hogy a legutóbbi kiadásban egyes felhasználóknál a címsorban található csillag ikonra kattintva a "Könyvjelző hozzáadása" gomb mellett megjelenik a "Hozzáadás az olvasási listához" gomb is, valamint a könyvjelzősáv jobb sarkában megjelenik az "Olvasási lista" menü, amely felsorolja az összes korábban hozzáadott oldalt. Ha egy oldalt az listából nyitunk meg, azt olvasottnak jelöli. Az oldalak listában kézzel is megjelölhetők olvasottnak vagy olvasatlannak, vagy eltávolíthatók a listából.
- Hozzáadva a hálózati szegmentáció támogatása, hogy megvédjen minket a felhasználók weboldalak közötti mozgásának nyomon követését célzó módszerektől, amelyek az információk tartós tárolására nem szánt területeken tárolt azonosítók használatán alapulnak ("Supercookies"). Mivel a gyorsítótárban tárolt erőforrások közös névtérben találhatók, függetlenül az eredeti domain-től, egy weboldal meghatározhatja, hogy egy másik oldal erőforrásait betöltik-e azáltal, hogy ellenőrzi a gyorsítótárban való meglétüket. A védelem a hálózati szegmentáción alapszik, amelynek lényege az, hogy domain, ahonnan a főoldal nyílik, korlátozza a gyorsítótár terjedelmét a mozgásnyomozó szkriptek számára csak a jelenlegi weboldalra (az iframe-ből származó szkript nem tudja ellenőrizni, hogy az erőforrást egy másik weboldalról töltötték-e be). A szegmentálás ára a gyorsítótárazás hatékonyságának csökkenése, ami jelentéktelenül megnöveli az oldal betöltési idejét (maximum 1.32%-kal, de a weboldalak 80%-ára 0.09-0.75%-kal).
- Frissítettük a hálózati portok feketelistáját, amelyeken blokkolva van a HTTP, HTTPS és FTP kérések küldése, hogy megvédjünk a NAT slipstreaming támadástól, amely lehetővé teszi, hogy a támadó által előkészített weboldal megnyitásakor hálózati kapcsolatot létesítsenek a böngészőn keresztül. a szerver A támadó bármely UDP vagy TCP porton a felhasználó rendszerén, függetlenül a belső IP-cím tartományok alkalmazásától (192.168.x.x, 10.x.x.x). A letiltott portok közé került a 554-es (RTSP protokoll) és a 10080-as (az Amanda biztonsági mentés és a VMWare vCenter használatában). Korábban már blokkolták a 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 és 6566 portokat.
- Kezdeti támogatás került bevezetésre a PDF-dokumentumok böngészőben való megnyitásához, XFA-formákkal.
- Néhány felhasználónál aktiválták az új „Chrome Settings > Privacy and security > Privacy sandbox” beállításokat, amelyek lehetőséget adnak az érdeklődési kategória meghatározására az API FLoC segítségével, anélkül, hogy egyedi azonosítást végeznének, és nem kötnénk a konkrét weboldalak látogatási előzményeihez.
- A felhasználó csatlakozásakor megjelenő, összefoglaló értesítést kapott az engedélyezett műveletekről, a központosított kezelés aktiválása esetén.
- A jogosultság kérésének felülete kevésbé tolakodó. Azokat a kéréseket, amelyeket a felhasználó valószínűleg nem hagy jóvá, mostantól automatikusan blokkolják, és a címsorban megjelenik az erre vonatkozó mutató, amelyen keresztül a felhasználó elérheti a jogosultságok kezelésére szolgáló felületet, minden weboldal esetén.

- Bekapcsolták az Intel CET (Intel Control-flow Enforcement Technology) kiterjesztések támogatását a támadásokkal szembeni hardveres védelme érdekében, amelyek visszatérési orientált programozási (ROP, Return-Oriented Programming) technikákon alapulnak.
- Folyamatban van a böngésző inkluzív terminológiai használatra való átállítása. A „master_preferences” fájl átnevezésre került „initial_preferences”-re, hogy ne sértse azok érzéseit, akik a master szót őseik rabszolgaságára utalónak érzik. A kompatibilitás megőrzése érdekében a „master_preferences” támogatása egy ideig még megmarad a böngészőben. Korábban a böngésző már megszabadult a „whitelist”, „blacklist” és „native” kifejezések használatától.
- Az Android verzióban a Lite forgalomcsökkentő mód aktiválásakor a mobil szolgáltatók hálózatain keresztül történő videóbetöltés során csökkentett bitrátát alkalmazunk, így a felhasználók, akik forgalmi díjas tarifákat használnak, mérsékelhetik kiadásaikat. A Lite módban emellett tömörítjük a nyilvánosan elérhető, HTTPS-en keresztül kért, hitelesítést nem igénylő forrásokból származó képeket.
- Hozzáadtunk egy AV1 videóformátum-kódolót, amelyet kifejezetten a WebRTC alapú videokonferenciákhoz optimalizáltak. Az AV1 alkalmazása videokonferenciák során lehetővé teszi a tömörítési hatékonyság növelését és a 30 kbit/s sávszélességű csatornákon történő közvetítést.
- A JavaScriptben az Array, String és TypedArrays objektumokban megvalósult az at() metódus, amely lehetővé teszi a relatív indexelést (az array indexeként a relatív pozíciót adjuk meg), beleértve a negatív értékek megadását a végéről (például az „arr.at(-1)” visszaadja a tömb utolsó elemét).
- A JavaScripthez a reguláris kifejezésekhez hozzáadódott a „.indices” tulajdonság, amely a találati csoportok kezdő és végpozícióit tartalmazó tömböt tárol. A tulajdonság csak akkor töltődik ki, amikor a reguláris kifejezés a „/d” zászlóval végrehajtásra kerül. const re = /(a)(b)/d; const m = re.exec('ab'); console.log(m.indices[0]); // 0 — minden találati csoport // → [0, 2] console.log(m.indices[1]); // 1 — első találati csoport // → [0, 1] console.log(m.indices[2]); // 2 — második találati csoport // → [1, 2]
- A „super” tulajdonságok (például super.x) inline-cache használatával történő teljesítményoptimalizáláson mentek keresztül. A „super” használatának teljesítménye most már közel áll a normál tulajdonságok elérésének teljesítményéhez.
- Jelentősen felgyorsították a WebAssembly-funkciók JavaScriptből történő hívását az inline-bővítés alkalmazásával. Az említett optimalizálás jelenleg kísérleti állapotban van, és a „—turbo-inline-js-wasm-calls” zászlóval kell futtatni.
- Hozzáadva a WebXR Depth Sensing API, amely lehetővé teszi a felhasználói környezetben lévő objektumok és a felhasználói eszköz közötti távolság meghatározását, például a valósághűbb kiterjesztett valósággal kapcsolatos alkalmazások létrehozásához. Emlékeztetünk arra, hogy a WebXR API egységesíti a virtuális valóság különböző eszközosztályaival való munkát, a hagyományos 3D-s sisakoktól a mobil eszközök alapú megoldásokig.
- Stabilizálva lett a WebXR AR Lighting Estimation funkció, amely lehetővé teszi a WebXR kiterjesztett valósággal kapcsolatos ülések során a környezeti világítás paramétereinek meghatározását, hogy a modellek természetesebb megjelenést és harmonikusabb integrációt nyújtsanak a felhasználói környezettel.
- Az Origin Trials mód (kísérleti lehetőségek, amelyek külön aktiválást igényelnek) révén számos új API került hozzáadásra, amelyek jelenleg az Android platformra korlátozódnak. Az Origin Trial lehetőséget ad az említett API használatára a localhost vagy 127.0.0.1-ről tölthető alkalmazásokból, vagy a regisztráció és egy adott időtartamra érvényes speciális token megszerzése után, amely egy adott webhelyhez van rendelve.
- A getCurrentBrowsingContextMedia() metódus lehetővé teszi a MediaStream videofolyam rögzítésének megszervezését, amely a jelenlegi lap tartalmát tükrözi. A hasonló getDisplayMedia() metódussal ellentétben a getCurrentBrowsingContextMedia() hívásakor a felhasználónak egy egyszerű párbeszédpanel jelenik meg, amely megerősítést kér a lap tartalmának videóátvitelének engedélyezéséről vagy blokkolásáról.
- Az Insertable Streams API lehetővé teszi a nyers multimédiás folyamok manipulálását, amelyeket a MediaStreamTrack API-n keresztül továbbítanak, mint például a kamera és a mikrofon adatai, a képernyő rögzítésének eredménye vagy a dekóder által megjelenített köztes adatok. A nyers képkockák megjelenítéséhez a WebCodec interfészeit használják, majd egy olyan folyamot hoznak létre, amely hasonló ahhoz, amit a WebRTC Insertable Streams API generál az RTCPeerConnections alapján. Gyakorlati szempontból az új API lehetővé teszi olyan funkciók megvalósítását, mint a gépi tanulási módszerek alkalmazása objektumok azonosítására vagy annotálására valós időben, vagy hatások hozzáadása, mint például a háttér kivágása a kódolás előtt vagy a dekóder általi dekódolás után.
- A források csomagba (Web Bundle) történő tömörítésének lehetősége a sok kapcsolódó fájl (CSS-stílusok, JavaScript, képek, iframe) hatékonyabb betöltése érdekében. A JavaScript fájlok csomagjainak támogatásában (webpack) jelentkező hátrányok, amelyeket a Web Bundle megkísérel megszüntetni: a HTTP-cache-ben magának a csomagnak kell maradnia, nem pedig az összetevőinek; a fordítás és végrehajtás csak a csomag teljes betöltése után kezdődhet; az olyan további erőforrásokat, mint a CSS és képek, JavaScript karakterláncok formájában kell kódolni, ami megnöveli a méretet, és újabb bontási szakasz végrehajtását igényli.
- WebAssembly kivételkezelésének támogatása.
- A Declarative Shadow DOM API stabilizálódott, lehetővé téve új gyökérágak létrehozását a Shadow DOM-ban, például a külső stílus importálásához és a dokumentum fő részétől való leválasztásához. A javasolt deklaratív API lehetővé teszi, hogy a DOM ágak leválasztásához csak HTML-t használjunk, anélkül, hogy JavaScript kódot kellene írni.
- Az aspect-ratio CSS tulajdonságban, amely kifejezetten a képarány hozzárendelésére szolgál bármely elemhez (az automatikus méretezéshez, ha csak a magasságot vagy a szélességet adjuk meg), megvalósították az értékek interpolálásának lehetőségét animáció során (zökkenőmentes átmenet az egyik képarányról a másikra).
- Lehetőség nyílt a saját HTML-elemek (custom element) állapotának CSS-en keresztül történő tükrözésére a ‘:state()’ álcázó osztály révén. A funkció hasonlóan működik, mint a szabványos HTML-elemek, amelyek állapotukat a felhasználói interakciók hatására megváltoztatják.
- Az ‘appearance’ CSS tulajdonságban megjelent az ‘auto’ érték támogatása, amely alapesetben a és esetén van beállítva, az Android platformon pedig további támogatás van a , , , és elemek számára.
- A CSS property "overflow" has added support for the value "clip", which, when set, cuts off any content that exceeds the block's boundaries at the limit of the allowable overflow without scrolling. The value that determines how far content can extend beyond the actual boundary of the block before clipping begins is set through the new CSS property "overflow-clip-margin". Compared to "overflow: hidden", using "overflow: clip" allows for improved performance.


- The HTTP header Feature-Policy has been replaced by the new Permissions-Policy header for managing delegation of authority and enabling extended features, which supports structured field value declarations (for example, you can now specify "Permissions-Policy: geolocation=()" instead of "Feature-Policy: geolocation 'none'").
- Protection against the use of Protocol Buffers for attacks caused by speculative execution in processors has been strengthened. This protection is implemented by adding the MIME type "application/x-protobuffer" to the list of never sniffed MIME types, which is processed through the Cross-Origin-Read-Blocking mechanism. Previously, the MIME type "application/x-protobuf" was already included in such a list, but "application/x-protobuffer" was overlooked.
- The File System Access API has implemented the ability to offset the current position in a file beyond its end by filling the resulting gap with zeros during subsequent write operations via the FileSystemWritableFileStream.write() call. This capability allows for the creation of sparse files with voids and greatly simplifies the organization of writing to files from streams where data blocks arrive unordered (for example, this is practiced in BitTorrent).
- A StaticRange constructor has been added, implementing lightweight types of Range that do not require updating all related objects with each change in the DOM tree.
- Megvalósítható a width és height paraméterek megadása az elemek számára <source>, amelyek a elemben vannak megadva <picture>. Ez a lehetőség lehetővé teszi az elemek képarányának kiszámítását <picture>, hasonlóan ahhoz, ahogyan az a <img>, <canvas> és <video>.
- Unstandardized support for RTP data channels (RTP Data Channels) has been removed from WebRTC, and it is recommended to use SCTP-based data channels instead.
- The properties navigator.plugins and navigator.mimeTypes now always return empty values (after the end of Flash support, these properties are no longer necessary).
- A significant number of minor improvements have been made to developer tools, and a new tool for debugging CSS flexbox has been added.

A legújabb verzióban 37 sebezhetőséget javítottak, a korábbi újítások és hibajavítások mellett. A sebezhetőségeket automatizált tesztelési eszközök, mint az AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer és AFL azonosították. Kritikus problémák, amelyek lehetővé tennék, hogy megkerüljék a böngésző összes védelmi szintjét és kódot hajtsanak végre a rendszerben a sandbox környezeten kívül, nem kerültek felfedezésre. Az aktuális kiadás sebezhetőségeinek felfedezéséért a Google összesen 19 díjat fizetett ki, összesen 54 000 USD értékben (egy díj 20 000 USD, egy díj 10 000 USD, két díj 5 000 USD, három díj 3 000 USD, egy díj 2 000 USD, egy 1 000 USD és négy díj 500 USD). A 6 jutalom összege még nem került meghatározásra.
Érdemes megemlíteni, hogy tegnap, a 89.0.4389.128 verzió módosító kiadásának elkészülte után, de a Chrome 90 megjelenése előtt, megjelent egy újabb exploit, amely egy új 0-day sebezhetőséget használt, amelyet nem javítottak a Chrome 89.0.4389.128 verzióban. Jelenleg nem világos, hogy ezt a problémát orvosolták-e a Chrome 90-ben. Ahogyan az első esetben az exploit csak egy sebezhetőséget céloz meg, és nem tartalmaz kódot a sandbox izoláció megkerülésére (ha a chrome-ot a „--no-sandbox” flaggel indítják, az exploit weboldal megnyitásakor a Windows platformon elindítja a notepadot). Az új exploit-al kapcsolatos sebezhetőség a WebAssembly technológiát érinti.
Forrás: opennet.ru





