Release von Chrome 90

Google hat die Version 90 des Web-Browsers Chrome veröffentlicht. Gleichzeitig ist eine stabile Version des Open-Source-Projekts Chromium verfügbar, auf dem Chrome basiert. Der Chrome-Browser zeichnet sich durch die Verwendung von Google-Logos aus, verfügt über ein System zur Benachrichtigung im Falle eines Absturzes, Module zur Wiedergabe von geschützten Videoinhalten (DRM), ein automatisches Update-System und überträgt bei Suchen RLZ-Parameter. Die nächste Version, Chrome 91, ist für den 25. Mai geplant.

Die wichtigsten Änderungen in Chrome 90:

  • Für alle Benutzer ist standardmäßig das Öffnen von Websites über HTTPS aktiviert, wenn Hostnamen in die Adresszeile eingegeben werden. Zum Beispiel wird beim Eingeben des Hosts example.com standardmäßig die Website https://example.com geöffnet. Wenn dabei Probleme auftreten, wird auf http://example.com zurückgegriffen. Um die Verwendung von "https://" standardmäßig zu steuern, ist eine Einstellung "chrome://flags#omnibox-default-typed-navigations-to-https" verfügbar.
  • Es wurde die Möglichkeit implementiert, Fenster unterschiedliche Bezeichnungen zuzuweisen, um sie in der Desktop-Leiste übersichtlicher zu gestalten. Die Unterstützung für die Änderung des Fensternamens vereinfacht die Organisation der Arbeit, insbesondere beim Einsatz separater Browserfenster für verschiedene Aufgaben, wie zum Beispiel für berufliche Projekte, persönliche Interessen, Unterhaltung oder Materialien, die später betrachtet werden sollen. Der Name kann über den Menüpunkt „Fensternamen hinzufügen“ im Kontextmenü, das erscheint, wenn mit der rechten Maustaste auf einen leeren Bereich in der Tab-Leiste geklickt wird, geändert werden. Nach der Umbenennung wird in der Anwendungsleiste anstelle des Namens der Website des aktiven Tabs der gewählte Name angezeigt, was hilfreich sein kann, wenn identische Websites in verschiedenen Fenstern mit unterschiedlichen Konten geöffnet werden. Die Zuordnung bleibt zwischen Sitzungen bestehen, und nach einem Neustart des Fensters werden diese mit den gewählten Namen wiederhergestellt.
    Release von Chrome 90
  • Die Möglichkeit, die "Leseliste" (Reading List) auszublenden, wurde hinzugefügt, ohne dass Einstellungen in "chrome://flags" geändert werden müssen ("chrome://flags#read-later"). Zum Ausblenden kann jetzt die Option "Leseliste anzeigen" im unteren Bereich des Kontextmenüs verwendet werden, das beim Rechtsklick auf die Lesezeichenleiste angezeigt wird. Wir erinnern daran, dass in der vorherigen Version bei einigen Nutzern beim Klicken auf das Sternchen in der Adressleiste neben der Schaltfläche "Lesezeichen hinzufügen" eine zweite Schaltfläche "In Leseliste hinzufügen" erscheint und in der rechten Ecke der Lesezeichenleiste ein Menü "Leseliste" angezeigt wird, in dem alle zuvor zur Liste hinzugefügten Seiten aufgelistet sind. Wenn eine Seite aus der Liste geöffnet wird, wird sie als gelesen markiert. Seiten in der Liste können ebenfalls manuell als gelesen oder ungelesen markiert oder aus der Liste entfernt werden.
  • Die Unterstützung für Netzwerksegmentierung wurde hinzugefügt, um Methoden zum Tracking der 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 Ressourcen im Cache im gemeinsamen Namensraum gespeichert werden, unabhängig von der ursprünglichen Domain, kann eine Website erkennen, ob Ressourcen von einer anderen Website über die Überprüfung des Vorhandenseins dieser Ressource im Cache geladen wurden. Der Schutz basiert auf der Anwendung von Netzwerksegmentierung (Network Partitioning), bei der in gemeinsam genutzte Caches eine zusätzliche Bindung der Einträge an Domain, von dem die Hauptseite geöffnet wurde, was den Geltungsbereich des Caches für Tracking-Skripte auf die aktuelle Website beschränkt (ein Skript aus einem iframe kann nicht überprüfen, ob die Ressource von einer anderen Website geladen wurde). Die Kosten der Segmentierung sind eine Verringerung der Cache-Effizienz, was zu einer geringen Erhöhung der Ladezeit der Seite führt (maximal um 1,32 %, jedoch für 80 % der Websites um 0,09-0,75 %).
  • Die Liste der gesperrten Netzwerkports, über die HTTP-, HTTPS- und FTP-Anfragen blockiert werden, wurde erweitert, um vor NAT Slipstreaming-Angriffen zu schützen. Bei diesen Angriffen kann durch das Öffnen einer speziell präparierten Webseite im Browser eine Netzwerkverbindung zu Server einem beliebigen UDP- oder TCP-Port im System des Benutzers hergestellt werden, unabhängig von der Verwendung interner Adressbereiche (192.168.x.x, 10.x.x.x). Zu den gesperrten Ports gehören nun auch 554 (RTSP-Protokoll) und 10080 (verwendet in Amanda Backup und VMWare vCenter). Zuvor wurden bereits die Ports 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 und 6566 blockiert.
  • Die erste Unterstützung zum Öffnen von PDF-Dokumenten mit XFA-Formularen im Browser wurde hinzugefügt.
  • Für einen Teil der Nutzer wurde der neue Bereich „Chrome-Einstellungen > Datenschutz und Sicherheit > Datenschutz-Sandbox“ aktiviert, der es erlaubt, die FLoC-API-Parameter zu verwalten. Diese zielt darauf ab, die Interessen des Benutzers zu bestimmen, ohne eine individuelle Identifizierung vorzunehmen oder die Browsing-Historie spezifischer Webseiten zu berücksichtigen.
  • Eine klarere Benachrichtigung mit einer Liste der zulässigen Aktionen wird angezeigt, wenn ein Benutzer sich mit einem Profil verbindet, für das das zentrale Management aktiviert ist.
  • Die Schnittstelle zur Anforderung von Berechtigungen wurde weniger aufdringlich gestaltet. Anfragen, die der Benutzer wahrscheinlich nicht genehmigt, werden jetzt automatisch blockiert, mit einer entsprechenden Anzeige in der Adresszeile. Über diese Anzeige kann der Benutzer zum Interface zur Verwaltung der Berechtigungen für jede Website wechseln.
    Release von Chrome 90
  • Die Unterstützung für Intel CET (Intel Control-flow Enforcement Technology) wurde aktiviert, um hardwareseitigen Schutz gegen Exploits zu bieten, die mit Techniken des Return-Oriented Programming (ROP) erstellt wurden.
  • Die Arbeit an der Übersetzung des Browsers zur Anwendung inklusiver Terminologie wurde fortgesetzt. Die Datei „master_preferences“ wurde in „initial_preferences“ umbenannt, um die Gefühle der Nutzer nicht zu verletzen, die das Wort Master als Hinweis auf die Sklaverei ihrer Vorfahren empfinden. Zur Wahrung der Kompatibilität bleibt die Unterstützung von „master_preferences“ noch einige Zeit im Browser erhalten. Zuvor hatte der Browser bereits die Verwendung von Begriffen wie „whitelist“, „blacklist“ und „native“ eingestellt.
  • In der Android-Version wurde im Modus zur Einsparung von Traffic „Lite“ eine Reduzierung der Bitrate bei der Videowiedergabe bei Verbindungen über mobile Netzwerke implementiert. Dies hilft, die Kosten für Nutzer, die Tarife mit Traffic-Berechnung nutzen, zu senken. Im „Lite“-Modus wird zudem eine Kompression von Bildern, die von öffentlich zugänglichen Ressourcen (ohne Authentifizierung) über HTTPS angefordert werden, gewährleistet.
  • Ein für Videokonferenzen, die auf dem WebRTC-Protokoll basieren, optimierter AV1-Videocodec wurde hinzugefügt. Der Einsatz von AV1 in Videokonferenzen verbessert die Kompressionseffizienz und ermöglicht die Übertragung über Verbindungen mit einer Bandbreite von nur 30 kbit/s.
  • In JavaScript wurde in den Objekten Array, String und TypedArrays die Methode at() eingeführt, die die relative Indizierung ermöglicht (die relative Position wird als Array-Index angegeben), einschließlich der Verwendung negativer Werte, um auf Positionen vom Ende zuzugreifen (zum Beispiel gibt 'arr.at(-1)' das letzte Element des Arrays zurück).
  • Für reguläre Ausdrücke in JavaScript wurde die Eigenschaft '.indices' hinzugefügt, die ein Array mit den Start- und Endpositionen der Übereinstimmungsgruppen enthält. Diese Eigenschaft wird nur gesetzt, 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 — erste Übereinstimmungsgruppe // → [0, 1] console.log(m.indices[2]); // 2 — zweite Übereinstimmungsgruppe // → [1, 2]
  • Die Leistung der Eigenschaften „super“ (z.B. super.x) wurde optimiert, für die ein Inline-Cache verwendet wird. Die Nutzung von „super“ erreicht nun nahezu die Performance des Zugriffs auf herkömmliche Eigenschaften.
  • Der Aufruf von WebAssembly-Funktionen aus JavaScript wurde erheblich beschleunigt durch den Einsatz von Inline-Deployment. Diese Optimierung bleibt vorerst experimentell und erfordert die Aktivierung mit dem Flag „—turbo-inline-js-wasm-calls“.
  • Die WebXR Depth Sensing API wurde hinzugefügt, um den Abstand zwischen Objekten in der Umgebung des Benutzers und dem Endgerät zu bestimmen, beispielsweise zur Erstellung realistischerer Augmented-Reality-Anwendungen. Es sei daran erinnert, dass die WebXR API die Arbeit mit verschiedenen Klassen von Virtual-Reality-Geräten standardisiert, von stationären 3D-Headsets bis hin zu mobilen Lösungen.
  • Die Möglichkeit der WebXR AR Lighting Estimation wurde stabilisiert, womit in WebXR-Sitzungen für Augmented Reality die Umgebungsbeleuchtungsparameter bestimmt werden können, um den Modellen ein natürlicheres Aussehen und eine harmonischere Integration in die Benutzerumgebung zu verleihen.
  • Im Origin-Trials-Modus (experimentelle Funktionen, die eine separate Aktivierung erfordern) wurden mehrere neue APIs hinzugefügt, die momentan auf die Android-Plattform beschränkt sind. Ein Origin Trial ermöglicht die Verwendung des angegebenen APIs aus Anwendungen, die von localhost oder 127.0.0.1 geladen werden, oder nach erfolgreicher Registrierung und Erhalt eines speziellen Tokens, der für eine bestimmte Website zeitlich begrenzt gültig ist.
    • Die Methode getCurrentBrowsingContextMedia() ermöglicht es, einen Video-Stream (MediaStream) zu erfassen, der den Inhalt des aktuellen Tabs widerspiegelt. Im Gegensatz zur ähnlichen Methode getDisplayMedia() zeigt die Verwendung von getCurrentBrowsingContextMedia() dem Benutzer einen einfachen Dialog zur Bestätigung oder zur Blockierung der Videoübertragung des Tab-Inhalts an.
    • API Insertable Streams ermöglicht die Manipulation von rohen Multimedia-Streams, die über die API MediaStreamTrack übertragen werden, wie z. B. Daten von Kamera und Mikrofon, Bildschirmaufnahmen oder dekodierte Zwischendaten vom Codec. Um die rohen Frames darzustellen, werden die WebCodec-Schnittstellen verwendet, danach wird ein Stream erstellt, der dem ähnelt, den die API WebRTC Insertable Streams auf Basis von RTCPeerConnections generiert. Praktisch ermöglicht die neue API die Implementierung von Funktionen wie den Einsatz von Machine-Learning-Methoden zur Identifizierung oder Annotierung von Objekten in Echtzeit oder das Hinzufügen von Effekten wie Hintergrundentfernung vor der Kodierung oder nach der Dekodierung durch den Codec.
    • Die Möglichkeit, Ressourcen in Pakete (Web Bundle) zu bündeln, ermöglicht eine effizientere Ladeweise vieler begleitender Dateien (CSS-Styles, JavaScript, Bilder, iframe). Zu den Nachteilen der bestehenden Unterstützung für JavaScript-Dateipakete (webpack), die im Web Bundle angegangen werden, gehört, dass möglicherweise nur das Paket selbst im HTTP-Cache abgelegt wird, nicht jedoch dessen Einzelteile; die Kompilierung und Ausführung können erst nach vollständigem Laden des Pakets beginnen; zusätzliche Ressourcen wie CSS und Bilder müssen in Form von JavaScript-Strings kodiert werden, was die Größe erhöht und eine weitere Parse-Ebene hinzufügt.
    • Unterstützung für die Behandlung von Ausnahmen in WebAssembly.
  • Der stabilisierte API Declarative Shadow DOM ermöglicht das Erstellen neuer Wurzelzweige im Shadow DOM, um beispielsweise den importierten externen Stil eines Elements und den dazugehörigen DOM-Teilbaum vom Hauptdokument zu trennen. Die vorgeschlagene deklarative API erlaubt es, zur Trennung von DOM-Zweigen nur HTML zu verwenden, ohne dass dafür JavaScript-Code geschrieben werden muss.
  • Im CSS-Eigenschaft aspect-ratio, die es ermöglicht, das Seitenverhältnis ausdrücklich an jedes Element zu binden (um die fehlende Größe automatisch zu berechnen, wenn nur die Höhe oder Breite angegeben wird), wurde die Möglichkeit der Interpolation von Werten bei Animationen (sanfter Übergang von einem Seitenverhältnis zum anderen) implementiert.
  • Die Möglichkeit, den Status eigener HTML-Elemente (custom element) über die Pseudo-Klasse „:state()“ in CSS darzustellen, wurde hinzugefügt. Diese Funktionalität wurde ähnlich zu der von nativen HTML-Elementen implementiert, die ihren Status je nach Interaktion mit dem Benutzer ändern können.
  • In der CSS-Eigenschaft „appearance“ wurde die Unterstützung für den Wert ‘auto’ eingeführt, der standardmäßig für <input type=color> und <select> festgelegt ist, und auf der Android-Plattform zusätzlich für <input type=date>, <input type=datetime-local>, <input type=month>, <input type=time> und <input type=week>.
  • In die CSS-Eigenschaft „overflow“ wurde die Unterstützung für den Wert „clip“ hinzugefügt, bei dem der Inhalt, der über die Blockgrenze hinausgeht, an der Grenze des zulässigen Überlaufs des Blocks ohne Scrollmöglichkeit abgeschnitten wird. Der Wert, der bestimmt, wie weit der Inhalt über die tatsächliche Grenze des Blocks hinausgehen kann, bevor das Abschneiden beginnt, wird durch die neue CSS-Eigenschaft „overflow-clip-margin“ definiert. Im Vergleich zu „overflow: hidden“ ermöglicht die Verwendung von „overflow: clip“ eine höhere Leistung.
    Release von Chrome 90Release von Chrome 90
  • Anstelle des HTTP-Headers Feature-Policy wurde der neue Header Permissions-Policy eingeführt, um die Delegation von Rechten und die Aktivierung erweiterter Funktionen zu steuern. Dieser unterstützt strukturierte Wertfelder (zum Beispiel kann nun "Permissions-Policy: geolocation=()" anstelle von "Feature-Policy: geolocation 'none'" angegeben werden).
  • Der Schutz gegen die Nutzung von Protocol Buffers zur Durchführung von Angriffen, die durch spekulative Ausführung von Anweisungen in Prozessoren verursacht werden, wurde verstärkt. Die Schutzmaßnahme erfolgt durch die Hinzufügung des MIME-Typs "application/x-protobuffer" zur Liste der MIME-Typen, die niemals überwacht (sniffed) werden. Die Verarbeitung erfolgt über den Mechanismus Cross-Origin-Read-Blocking. Zuvor wurde bereits der MIME-Typ "application/x-protobuf" in diese Liste aufgenommen, jedoch wurde "application/x-protobuffer" übersehen.
  • Die API für den Dateisystemzugriff ermöglicht es, die aktuelle Position in einer Datei über deren Ende hinaus zu verschieben und dabei den entstandenen Abstand mit Nullen aufzufüllen, wenn anschließend über den Aufruf von FileSystemWritableFileStream.write() geschrieben wird. Diese Funktionalität erleichtert die Erstellung von sparsamen Dateien mit Lücken erheblich und vereinfacht die Organisation der Schreibvorgänge in Dateien für Datenströme mit ungeordnetem Blockeingang (ein Beispiel hierfür ist die Praxis bei BitTorrent).
  • Es wurde ein StaticRange-Konstruktor eingeführt, der leichtgewichtige Range-Typen implementiert, die bei jeder Änderung des DOM-Baums keine Aktualisierung aller verwandten Objekte erfordern.
  • Die Möglichkeit zur Angabe der Parameter width und height für Elemente wurde umgesetzt. <source>, die innerhalb des Elements angegeben sind. <picture>. Diese Funktion ermöglicht die Berechnung des Seitenverhältnisses für Elemente, <picture>, ähnlich wie es dafür vorgesehen ist. <img>, <canvas> und <video>.
  • Die nicht-standardisierte Unterstützung der RTP-Datenkanäle (RTP Data Channels) wurde aus WebRTC entfernt. Stattdessen wird empfohlen, 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 Unterstützung für Flash besteht keine Notwendigkeit mehr für diese Eigenschaften).
  • Eine Vielzahl kleinerer Verbesserungen wurde in die Werkzeuge für Webentwickler integriert, und ein neues Werkzeug zur Fehlersuche bei CSS-Flexbox wurde hinzugefügt.
    Release von Chrome 90

Neben neuen Funktionen und Fehlerbehebungen wurden in der neuen Version 37 Sicherheitsanfälligkeiten beseitigt. Viele dieser Schwachstellen wurden durch automatisierte Tests mit den Werkzeugen AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer und AFL identifiziert. Kritische Probleme, die es ermöglichen würden, alle Schutzebenen des Browsers zu umgehen und Code außerhalb der Sandbox-Umgebung auszuführen, wurden nicht festgestellt. Im Zuge des Programms zur Auszahlung von Belohnungen für die Entdeckung von Sicherheitsanfälligkeiten hat Google für die aktuelle Version 19 Prämien im Gesamtwert von 54.000 US-Dollar ausgezahlt (eine Prämie von 20.000 US-Dollar, eine Prämie von 10.000 US-Dollar, zwei Prämien von 5.000 US-Dollar, drei Prämien von 3.000 US-Dollar, eine Prämie von 2.000 US-Dollar, eine von 1.000 US-Dollar und vier Prämien von 500 US-Dollar). Die Höhe von 6 Belohnungen ist derzeit noch nicht festgelegt.

Besonders bemerkenswert ist, dass gestern nach der Veröffentlichung der korrigierten Version 89.0.4389.128, jedoch vor dem Erscheinen von Chrome 90, ein weiterer Exploit veröffentlicht wurde, der eine neue 0-Day-Sicherheitslücke ausnutzt, die in Chrome 89.0.4389.128 nicht behoben wurde. Es ist derzeit unklar, ob dieses Problem in Chrome 90 behoben wurde. Wie im ersten Fall betrifft der Exploit nur eine Sicherheitsanfälligkeit und enthält keinen Code zum Umgehen der Sandbox-Isolierung (beim Start von Chrome mit dem Flag „—no-sandbox“ ermöglicht der Exploit beim Öffnen einer Webseite auf der Windows-Plattform das Ausführen von Notepad). Die mit dem neuen Exploit verbundene Schwachstelle betrifft die WebAssembly-Technologie.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster