Chrome-Version 90

Google hat die Veröffentlichung des Webbrowsers Chrome 90 vorgestellt. Gleichzeitig ist eine stabile Version des kostenlosen Chromium-Projekts verfügbar, das als Basis von Chrome dient. Der Chrome-Browser zeichnet sich durch die Verwendung von Google-Logos, das Vorhandensein eines Systems zum Versenden von Benachrichtigungen im Falle eines Absturzes, Module zum Abspielen geschützter Videoinhalte (DRM), ein System zur automatischen Installation von Updates und die Übermittlung von RLZ-Parametern bei der Suche aus. Die nächste Veröffentlichung von Chrome 91 ist für den 25. Mai geplant.

Wichtige Änderungen in Chrome 90:

  • Alle Benutzer können standardmäßig Websites über HTTPS öffnen, wenn sie Hostnamen in die Adressleiste eingeben. Wenn Sie beispielsweise den Host example.com eingeben, wird standardmäßig die Site https://example.com geöffnet. Wenn beim Öffnen Probleme auftreten, wird ein Rollback auf http://example.com durchgeführt. Um die Verwendung der Standardeinstellung „https://“ zu steuern, wird die Einstellung „chrome://flags#omnibox-default-typed-navigations-to-https“ vorgeschlagen.
  • Es ist nun möglich, Fenstern unterschiedliche Beschriftungen zuzuweisen, um sie im Desktop-Panel optisch zu trennen. Die Unterstützung für die Änderung des Fensternamens vereinfacht die Arbeitsorganisation, wenn separate Browserfenster für verschiedene Aufgaben verwendet werden, beispielsweise beim Öffnen separater Fenster für Arbeitsaufgaben, persönliche Interessen, Unterhaltung, zurückgestellte Materialien usw. Die Änderung des Namens erfolgt über den Eintrag „Fenstertitel hinzufügen“ im Kontextmenü, das erscheint, wenn Sie mit der rechten Maustaste auf einen leeren Bereich in der Tab-Leiste klicken. Nach dem Ändern des Namens im Anwendungsfenster wird anstelle des Site-Namens aus der aktiven Registerkarte der ausgewählte Name angezeigt. Dies kann nützlich sein, wenn dieselben Sites in verschiedenen Fenstern geöffnet werden, die mit separaten Konten verknüpft sind. Die Bindung bleibt zwischen den Sitzungen erhalten und nach einem Neustart werden die Fenster mit den ausgewählten Namen wiederhergestellt.
    Chrome-Version 90
  • Es wurde die Möglichkeit hinzugefügt, die „Leseliste“ auszublenden, ohne die Einstellungen in „chrome://flags“ („chrome://flags#read-later“) ändern zu müssen. Zum Ausblenden können Sie jetzt die Option „Leseliste anzeigen“ unten im Kontextmenü verwenden, das angezeigt wird, wenn Sie mit der rechten Maustaste auf die Lesezeichenleiste klicken. Wir möchten Sie daran erinnern, dass in der letzten Version, wenn einige Benutzer auf das Sternchen in der Adressleiste klicken, zusätzlich zur Schaltfläche „Lesezeichen hinzufügen“ eine zweite Schaltfläche „Zur Leseliste hinzufügen“ erscheint, und zwar in der rechten Ecke des Im Lesezeichenbereich erscheint das Menü „Leseliste“, das alle zuvor zur Liste hinzugefügten Seiten auflistet. Wenn Sie eine Seite aus der Liste öffnen, wird sie als gelesen markiert. Seiten in der Liste können auch manuell als gelesen oder ungelesen markiert oder aus der Liste entfernt werden.
  • Unterstützung für Netzwerksegmentierung hinzugefügt, um vor Methoden zur Verfolgung von Benutzerbewegungen zwischen Websites zu schützen, die auf der Speicherung von Identifikatoren in Bereichen basieren, die nicht für die dauerhafte Speicherung von Informationen vorgesehen sind („Supercookies“). Da zwischengespeicherte Ressourcen unabhängig von der Ursprungsdomäne in einem gemeinsamen Namespace gespeichert werden, kann eine Site feststellen, dass eine andere Site Ressourcen lädt, indem sie prüft, ob sich diese Ressource im Cache befindet. Der Schutz basiert auf der Verwendung von Netzwerksegmentierung (Netzwerkpartitionierung), deren Kern darin besteht, gemeinsam genutzten Caches eine zusätzliche Bindung von Datensätzen an die Domäne hinzuzufügen, von der aus die Hauptseite geöffnet wird, wodurch die Cache-Abdeckung nur für Bewegungsverfolgungsskripte begrenzt wird zur aktuellen Site (ein Skript von einem Iframe kann nicht überprüfen, ob die Ressource von einer anderen Site heruntergeladen wurde). Der Preis der Segmentierung ist eine Verringerung der Caching-Effizienz, was zu einem leichten Anstieg der Seitenladezeit führt (maximal um 1.32 %, aber für 80 % der Websites um 0.09–0.75 %).
  • Die schwarze Liste der Netzwerkports, für die das Senden von HTTP-, HTTPS- und FTP-Anfragen blockiert ist, wurde zum Schutz vor NAT-Slipstreaming-Angriffen ergänzt, die es ermöglichen, beim Öffnen einer vom Angreifer speziell vorbereiteten Webseite in einem Browser ein Netzwerk aufzubauen Verbindung vom Server des Angreifers zu einem beliebigen UDP- oder TCP-Port auf dem System des Benutzers, trotz Verwendung des internen Adressbereichs (192.168.xx, 10.xxx). 554 (RTSP-Protokoll) und 10080 (verwendet in Amanda Backup und VMWare vCenter) zur Liste der verbotenen Ports hinzugefügt. Zuvor waren bereits die Ports 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 und 6566 gesperrt.
  • Erste Unterstützung für das Öffnen von PDF-Dokumenten mit XFA-Formularen im Browser hinzugefügt.
  • Für einige Benutzer wurde ein neuer Einstellungsbereich „Chrome-Einstellungen > Datenschutz und Sicherheit > Datenschutz-Sandbox“ aktiviert, der es Ihnen ermöglicht, die Parameter der FLoC-API zu verwalten, die darauf abzielen, die Kategorie der Benutzerinteressen ohne individuelle Identifizierung und ohne Bezug zu bestimmen die Geschichte des Besuchs bestimmter Websites.
  • Eine klarere Benachrichtigung mit einer Liste der zulässigen Aktionen wird jetzt angezeigt, wenn ein Benutzer eine Verbindung zu einem Profil herstellt, für das die zentrale Verwaltung aktiviert ist.
  • Die Schnittstelle zur Berechtigungsanforderung wurde weniger aufdringlich gestaltet. Anfragen, die der Benutzer wahrscheinlich ablehnen wird, werden jetzt automatisch blockiert, wobei in der Adressleiste ein entsprechender Indikator angezeigt wird, mit dem der Benutzer zur Benutzeroberfläche für die Verwaltung von Berechtigungen pro Site gelangen kann.
    Chrome-Version 90
  • Unterstützung für Intel CET-Erweiterungen (Intel Control-flow Enforcement Technology) ist enthalten, um Hardware vor Exploits zu schützen, die mithilfe von Return-Oriented-Programming-Techniken (ROP, Return-Oriented Programming) erstellt wurden.
  • Es wird weiterhin an der Umstellung des Browsers auf die Verwendung inklusiver Terminologie gearbeitet. Die Datei „master_preferences“ wurde in „initial_preferences“ umbenannt, um die Gefühle der Benutzer nicht zu verletzen, die das Wort „master“ als Hinweis auf die frühere Sklaverei ihrer Vorfahren wahrnehmen. Aus Kompatibilitätsgründen bleibt die Unterstützung für „master_preferences“ im Browser noch einige Zeit bestehen. Zuvor hatte der Browser bereits auf die Verwendung der Wörter „Whitelist“, „Blacklist“ und „native“ verzichtet.
  • Wenn in der Android-Version der Verkehrssparmodus „Lite“ aktiviert ist, wird die Bitrate beim Herunterladen von Videos reduziert, wenn eine Verbindung über die Netze von Mobilfunkanbietern besteht, was die Kosten für Benutzer senkt, die verkehrsbasierte Tarife aktiviert haben. Der „Lite“-Modus ermöglicht auch die Komprimierung von Bildern, die von öffentlich verfügbaren Ressourcen (ohne Authentifizierung erforderlich) über HTTPS angefordert werden.
  • AV1-Videoformat-Encoder hinzugefügt, speziell optimiert für den Einsatz in Videokonferenzen basierend auf dem WebRTC-Protokoll. Der Einsatz von AV1 bei Videokonferenzen ermöglicht eine höhere Komprimierungseffizienz und ermöglicht die Übertragung auf Kanälen mit einer Bandbreite von 30 kbit/s.
  • In JavaScript implementieren die Objekte Array, String und TypedArrays die Methode at(), mit der Sie die relative Indizierung verwenden können (relative Position wird als Array-Index angegeben), einschließlich der Angabe negativer Werte relativ zum Ende (z. B. „arr.at(-1)“ gibt das letzte Element des Arrays zurück.
  • JavaScript hat die Eigenschaft „.indices“ für reguläre Ausdrücke hinzugefügt, die ein Array mit den Start- und Endpositionen von Übereinstimmungsgruppen enthält. Die Eigenschaft wird nur gefüllt, wenn der reguläre Ausdruck mit dem Flag „/d“ ausgeführt wird. const re = /(a)(b)/d; const m = re.exec('ab'); console.log(m.indices[0]); // 0 – alle Übereinstimmungsgruppen // → [0, 2] console.log(m.indices[1]); // 1 ist die erste Gruppe von Übereinstimmungen // → [0, 1] console.log(m.indices[2]); // 2 - zweite Gruppe von Spielen // → [1, 2]
  • Die Leistung von „Super“-Eigenschaften (z. B. super.x), für die der Inline-Cache aktiviert ist, wurde optimiert. Die Leistung bei der Verwendung von „super“ kommt nun der Leistung beim Zugriff auf reguläre Eigenschaften nahe.
  • Der Aufruf von WebAssembly-Funktionen aus JavaScript wurde durch den Einsatz von Inline-Deployment deutlich beschleunigt. Diese Optimierung bleibt vorerst experimentell und erfordert die Ausführung mit dem Flag „-turbo-inline-js-wasm-calls“.
  • Die WebXR Depth Sensing API wurde hinzugefügt, mit der Sie beispielsweise den Abstand zwischen Objekten in der Umgebung des Benutzers und dem Gerät des Benutzers bestimmen können, um realistischere Augmented-Reality-Anwendungen zu erstellen. Wir möchten Sie daran erinnern, dass Sie mit der WebXR-API die Arbeit mit verschiedenen Klassen von Virtual-Reality-Geräten vereinheitlichen können, von stationären 3D-Helmen bis hin zu Lösungen, die auf mobilen Geräten basieren.
  • Die WebXR AR-Beleuchtungsschätzungsfunktion wurde stabilisiert, sodass WebXR AR-Sitzungen Umgebungsbeleuchtungsparameter bestimmen können, um Modellen ein natürlicheres Aussehen und eine bessere Integration in die Umgebung des Benutzers zu verleihen.
  • Der Origin-Testmodus (experimentelle Funktionen, die eine separate Aktivierung erfordern) fügt mehrere neue APIs hinzu, die derzeit auf die Android-Plattform beschränkt sind. Die Origin-Testversion impliziert die Möglichkeit, mit der angegebenen API aus Anwendungen zu arbeiten, die von localhost oder 127.0.0.1 heruntergeladen wurden, oder nach der Registrierung und dem Erhalt eines speziellen Tokens, das für eine begrenzte Zeit für eine bestimmte Site gültig ist.
    • Die getCurrentBrowsingContextMedia()-Methode, die es ermöglicht, einen MediaStream-Videostream zu erfassen, der den Inhalt der aktuellen Registerkarte widerspiegelt. Im Gegensatz zur ähnlichen Methode getDisplayMedia() wird dem Benutzer beim Aufruf von getCurrentBrowsingContextMedia() ein einfacher Dialog angezeigt, um den Vorgang der Videoübertragung mit dem Inhalt der Registerkarte zu bestätigen oder zu blockieren.
    • Insertable Streams API, mit der Sie Rohmedienströme bearbeiten können, die über die MediaStreamTrack-API übertragen werden, z. B. Kamera- und Mikrofondaten, Bildschirmaufnahmeergebnisse oder Zwischencodec-Decodierungsdaten. WebCodec-Schnittstellen werden verwendet, um Rohframes darzustellen, und es wird ein Stream generiert, der dem ähnelt, was die WebRTC Insertable Streams API basierend auf RTCPeerConnections generiert. Auf der praktischen Seite ermöglicht die neue API Funktionen wie die Anwendung maschineller Lerntechniken zur Identifizierung oder Kommentierung von Objekten in Echtzeit oder das Hinzufügen von Effekten wie Hintergrundausschnitt vor der Kodierung oder nach der Dekodierung durch einen Codec.
    • Die Möglichkeit, Ressourcen in Pakete zu packen (Web Bundle), um das Laden einer großen Anzahl begleitender Dateien (CSS-Stile, JavaScript, Bilder, Iframes) effizienter zu organisieren. Zu den Mängeln der bestehenden Unterstützung von Paketen für JavaScript-Dateien (Webpack), die das Web Bundle zu beseitigen versucht, gehören: Das Paket selbst, nicht aber seine Bestandteile, kann im HTTP-Cache landen; Die Kompilierung und Ausführung kann erst beginnen, nachdem das Paket vollständig heruntergeladen wurde. Zusätzliche Ressourcen wie CSS und Bilder müssen in Form von JavaScript-Strings codiert werden, was die Größe erhöht und einen weiteren Parsing-Schritt erfordert.
    • Unterstützung für die Ausnahmebehandlung in WebAssembly.
  • Die deklarative Shadow-DOM-API wurde stabilisiert, um neue Stammzweige im Shadow-DOM zu erstellen, um beispielsweise einen importierten Elementstil eines Drittanbieters und den zugehörigen DOM-Unterzweig vom Hauptdokument zu trennen. Mit der vorgeschlagenen deklarativen API können Sie zum Lösen von DOM-Zweigen nur HTML verwenden, ohne JavaScript-Code schreiben zu müssen.
  • Die CSS-Eigenschaft „aspect-ratio“, mit der Sie das Seitenverhältnis explizit an jedes Element binden können (um die fehlende Größe automatisch zu berechnen, wenn nur die Höhe oder Breite angegeben wird), implementiert die Möglichkeit, Werte während der Animation zu interpolieren (reibungsloser Übergang von eins). Seitenverhältnis zu einem anderen).
  • Es wurde die Möglichkeit hinzugefügt, den Status benutzerdefinierter HTML-Elemente in CSS über die Pseudoklasse „:state()“ wiederzugeben. Die Funktionalität wird analog zur Fähigkeit von Standard-HTML-Elementen implementiert, ihren Zustand abhängig von der Benutzerinteraktion zu ändern.
  • Die CSS-Eigenschaft „appearance“ unterstützt jetzt den Wert „auto“, der standardmäßig für eingestellt ist Und , und auf der Android-Plattform zusätzlich für , , , Und .
  • Der CSS-Eigenschaft „overflow“ wurde Unterstützung für den Wert „clip“ hinzugefügt. Wenn dieser festgelegt ist, werden Inhalte, die über den Block hinausgehen, auf die Grenze des zulässigen Überlaufs des Blocks beschnitten, ohne dass ein Scrollen möglich ist. Über die neue CSS-Eigenschaft „overflow-clip-margin“ wird der Wert festgelegt, der bestimmt, wie weit der Inhalt über den eigentlichen Rand der Box hinausragen darf, bevor mit dem Ausschneiden begonnen wird. Im Vergleich zu „overflow:hidden“ ermöglicht die Verwendung von „overflow:clip“ eine bessere Leistung.
    Chrome-Version 90Chrome-Version 90
  • Der Feature-Policy-HTTP-Header wurde durch einen neuen Permissions-Policy-Header ersetzt, um die Delegierung von Berechtigungen und die Aktivierung erweiterter Funktionen zu steuern, einschließlich der Unterstützung strukturierter Feldwerte (z. B. können Sie jetzt „Permissions-Policy: Geolocation“ angeben). =()“ anstelle von „Feature-Policy: geolocation ‚none‘“).
  • Verstärkter Schutz gegen die Verwendung von Protokollpuffern für Angriffe, die durch die spekulative Ausführung von Anweisungen in Prozessoren verursacht werden. Der Schutz wird durch Hinzufügen des MIME-Typs „application/x-protobuffer“ zur Liste der nie gesnifften MIME-Typen implementiert, der über den Cross-Origin-Read-Blocking-Mechanismus verarbeitet wird. Zuvor war der MIME-Typ „application/x-protobuf“ bereits in einer ähnlichen Liste enthalten, „application/x-protobufer“ wurde jedoch weggelassen.
  • Die File System Access API implementiert die Möglichkeit, die aktuelle Position in einer Datei über ihr Ende hinaus zu verschieben und die resultierende Lücke beim nachfolgenden Schreiben durch den Aufruf FileSystemWritableFileStream.write() mit Nullen zu füllen. Mit dieser Funktion können Sie Dateien mit geringer Dichte und Leerzeichen erstellen und die Organisation des Schreibens von Streams in eine Datei mit ungeordnetem Eintreffen von Datenblöcken erheblich vereinfachen (dies wird beispielsweise in BitTorrent praktiziert).
  • StaticRange-Konstruktor mit Implementierung einfacher Range-Typen hinzugefügt, die nicht bei jeder Änderung des DOM-Baums eine Aktualisierung aller zugehörigen Objekte erfordern.
  • Die Möglichkeit, Breiten- und Höhenparameter für Elemente anzugeben, wurde implementiert innerhalb des Elements angegeben . Mit dieser Funktion können Sie das Seitenverhältnis für Elemente berechnen , analog dazu, wie es gemacht wird , Und .
  • Die nicht standardisierte Unterstützung für RTP-Datenkanäle wurde aus WebRTC entfernt und es wird empfohlen, stattdessen SCTP-basierte Datenkanäle zu verwenden.
  • Die Eigenschaften navigator.plugins und navigator.mimeTypes geben jetzt immer einen leeren Wert zurück (nach dem Ende der Flash-Unterstützung wurden diese Eigenschaften nicht mehr benötigt).
  • An den Tools für Webentwickler wurden viele kleine Verbesserungen vorgenommen und ein neues CSS-Debugging-Tool, Flexbox, hinzugefügt.
    Chrome-Version 90

Neben Neuerungen und Fehlerbehebungen beseitigt die neue Version 37 Schwachstellen. Viele der Schwachstellen wurden als Ergebnis automatisierter Tests mit den Tools AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer und AFL identifiziert. Es wurden keine kritischen Probleme identifiziert, die es ermöglichen würden, alle Ebenen des Browserschutzes zu umgehen und Code auf dem System außerhalb der Sandbox-Umgebung auszuführen. Im Rahmen des Geldprämienprogramms für die Entdeckung von Schwachstellen in der aktuellen Version zahlte Google 19 Auszeichnungen im Wert von 54000 US-Dollar aus (eine Auszeichnung in Höhe von 20000 US-Dollar, eine Auszeichnung in Höhe von 10000 US-Dollar, zwei Auszeichnungen in Höhe von 5000 US-Dollar, drei Auszeichnungen in Höhe von 3000 US-Dollar, eine Auszeichnung in Höhe von 2000 US-Dollar, eine Auszeichnung in Höhe von 1000 US-Dollar und vier Auszeichnungen in Höhe von 500 US-Dollar). ). ). Die Höhe der 6 Belohnungen steht noch nicht fest.

Unabhängig davon ist anzumerken, dass gestern, nach der Erstellung der Korrekturversion 89.0.4389.128, aber vor der Veröffentlichung von Chrome 90, ein weiterer Exploit veröffentlicht wurde, der eine neue 0-Tage-Schwachstelle ausnutzte, die in Chrome 89.0.4389.128 nicht behoben wurde . Es ist noch nicht klar, ob dieses Problem in Chrome 90 behoben wurde. Wie im ersten Fall deckt der Exploit nur eine Schwachstelle ab und enthält keinen Code zur Umgehung der Sandbox-Isolation (bei Ausführung von Chrome mit dem Flag „--no-sandbox“) , der Exploit tritt auf, wenn das Öffnen einer Webseite auf einer Windows-Plattform Ihnen die Ausführung von Notepad ermöglicht. Die mit dem neuen Exploit verbundene Schwachstelle betrifft die WebAssembly-Technologie.

Source: opennet.ru

Kommentar hinzufügen