La société Google a publié la version 135 de son navigateur web Chrome. En parallèle, une version stable du projet libre Chromium, qui sert de base à Chrome, est également disponible. Le navigateur Chrome se distingue de Chromium par l'utilisation des logos Google, la présence d'un système d'envoi de notifications en cas de plantage, des modules pour la lecture de contenus vidéo protégés (DRM), un système de mise à jour automatique, l'activation permanente de l'isolation Sandbox, la fourniture de clés pour l'API de Google et la transmission de paramètres RLZ lors de la recherche. Pour ceux qui ont besoin de plus de temps pour mettre à jour, une branche Extended Stable est maintenue séparément avec un cycle de support de 8 semaines. La prochaine version de Chrome, la 136, est prévue pour le 29 avril.
Principales modifications de Chrome 135 :
- Ajout d'une protection contre l'identification cachée des utilisateurs grâce au cache HSTS (HTTP Strict Transport Security). HSTS permet aux sites de rediriger les utilisateurs de HTTP vers HTTPS lors de la connexion. Pendant le fonctionnement, le nom d'hôte établi via HSTS est conservé dans le cache interne, ce qui permet d'utiliser la présence ou l'absence du nom d'hôte dans le cache pour stocker un bit d'information.
Pour le stockage caché d'un identifiant utilisateur 32 bits, un tableau de 32 images peut être utilisé, renvoyées depuis différents hôtes par HTTP (http://bit0.example.com/image.jpg, http://bit1.example.com/image.jpg, etc.). L'identifiant est déterminé en vérifiant depuis quels hôtes les images ont été chargées par HTTPS et depuis quels hôtes elles ont été chargées par HTTP (si les images ont été fournies précédemment par HTTP et redirigées vers HTTPS via HSTS, elles seront immédiatement chargées par HTTPS lors des requêtes ultérieures, sans passer par HTTP). La protection a été réduite à permettre la mise à jour de HSTS uniquement pour les ressources de premier niveau et à bloquer la mise à jour de HSTS dans les requêtes de sous-ressources.
- Ajout d'un modèle d'apprentissage automatique exécuté localement pour améliorer la détection de la présence de formulaires de saisie de mot de passe sur les pages et le changement automatique de mot de passe. Si un mot de passe est jugé compromis, lors de la tentative de connexion avec ce mot de passe sur un site, Chrome affichera un avertissement suggérant de changer le mot de passe. En cas d'acceptation, le navigateur générera un mot de passe résistant aux attaques par force brute, changera le mot de passe sur le site et enregistrera le nouveau mot de passe dans le gestionnaire de mots de passe — l'IA remplira automatiquement les formulaires web nécessaires sur le site requis et mettra à jour le mot de passe enregistré.
- Le mode de protection avancée du navigateur (Safe Browsing > Protection avancée) a été enrichi d'une fonctionnalité utilisant un grand modèle linguistique pour identifier les pages frauduleuses à partir de leur contenu. Le modèle d'IA est exécuté côté client, mais en cas de suspicion de contenu douteux, une vérification supplémentaire est effectuée sur serveurs Google. Si cette vérification supplémentaire est confirmée, un avertissement est affiché à l'utilisateur. La vérification est actuellement réalisée uniquement pour les pages utilisant l'API Keyboard Lock.
- Les utilisateurs ayant connecté Chrome à leur compte Google peuvent maintenant enregistrer les extensions installées dans leur Compte Google pour les utiliser automatiquement par la suite sur tous les ordinateurs qu'ils utilisent.
- Les utilisateurs qui se sont récemment connectés à un compte Google ou qui utilisent Chrome Sync ont accès à un stockage séparé pour les paramètres synchronisés, les raccourcis de sites et les thèmes, distinct des paramètres locaux. Ainsi, après la désactivation de Chrome Sync sur un appareil, les paramètres d'origine resteront, et lors de la connexion à Google, les paramètres locaux ne seront pas chargés.
- Dans la version Android, la prise en charge du gestionnaire de mots de passe intégré a été abandonnée, remplacée par le Google Password Manager unifié, fourni via Google Play. Les utilisateurs peuvent sauvegarder le contenu de l'ancien gestionnaire de mots de passe au format CSV pour le transférer vers d'autres gestionnaires de mots de passe.
- En mode incognito, la blocage non désactivable des cookies tiers, qui sont installés lors de la consultation de sites différents de de domaine la page courante (de tels cookies sont utilisés pour le suivi des déplacements des utilisateurs entre les sites dans le code des réseaux publicitaires, des widgets de réseaux sociaux et des systèmes d'analyse web). La possibilité de gérer le blocage des cookies tiers côté sites reste inchangée, mais dans le navigateur, le paramètre BlockThirdPartyCookies en mode incognito ne peut plus être défini sur false.
- Des pseudo-éléments «::column», «::scroll-button», «::scroll-marker» et «::scroll-marker-group» ont été ajoutés au CSS, permettant de réaliser un défilement sous forme de carrousel.
- Les attributs HTML «command» et «commandfor» ont été introduits, permettant de les utiliser dans les boutons à la place des attributs «popovertargetaction» et «popovertarget» pour une configuration déclarative de l'interaction avec le menu appelé lors de l'appui sur le bouton. Lors de l'utilisation des nouveaux attributs, toute la logique d'interaction avec le menu est gérée par le navigateur, sans besoin de connecter des gestionnaires personnalisés en JavaScript. Par exemple, pour créer un menu déroulant, il suffit de spécifier : <button commandfor="»my-menu»" command="»show-popover»">Ouvrir le menu</button> <div popover id="»my-menu»"> … </div>
- La fonction shape() a été ajoutée en CSS, permettant de former des formes à l'aide des propriétés CSS clip-path et offset-path. La fonction shape() prend en charge les commandes de formation de formes équivalentes à la fonction path(), mais permet d'utiliser une syntaxe CSS standard.
- Dans l'API Web Speech, qui fournit des fonctionnalités pour la synthèse et la reconnaissance vocale, le support de l'interface MediaStreamTrack a été ajouté pour traiter le son provenant de diverses sources, y compris les pistes audio externes. Auparavant, l'API Web Speech ne pouvait traiter que le son provenant du microphone par défaut sélectionné.
- En JavaScript, le support des tableaux typés Float16Array a été ajouté, destiné à stocker des valeurs de type Float16.
- Une API Observable a été ajoutée pour traiter des flux d'événements de manière asynchrone. Cette API permet de s'abonner à un objet pour recevoir des événements au fur et à mesure de leur arrivée et de décrire de manière déclarative le flux de transformations qui seront appliquées aux événements entrants.
- La méthode navigator.xr.supportsSession, précédemment déclarée obsolète, a été supprimée. À sa place, il convient d'utiliser la méthode navigator.xr.isSessionSupported, spécifiée dans la documentation WebXR.
- Les paramètres InsecurePrivateNetworkRequestsAllowedForUrls et InsecurePrivateNetworkRequestsAllowed, qui étaient utilisés pour activer le mécanisme PNA 1.0 (Accès au Réseau Privé), qui restreint le chargement de ressources d'un site accessible publiquement vers des hôtes sur un réseau interne (127.0.0.0/8, 192.168.0.0/16, 10.0.0.0/8, etc.), ont été supprimés. De telles activités sont exploitées par des malfaiteurs pour mener des attaques CSRF contre des routeurs, des points d'accès, des imprimantes, des interfaces web d'entreprise et d'autres dispositifs et services qui acceptent uniquement des requêtes provenant du réseau local.
En raison d'incompatibilités avec certains dispositifs, le PNA 1.0 n'a pu être activé que sur demande. En remplacement, la spécification PNA 2.0 a été développée, dont le support ne nécessite pas de modifications côté dispositif, seulement des changements du côté des sites nécessitant l'accès aux ressources intranet. Le PNA 1.0 et le PNA 2.0 ne sont pas compatibles entre eux, c'est pourquoi avant d'introduire le PNA 2.0, Google prévoit d'abord de retirer le support du PNA 1.0.
- L'option de restauration du support de l'interface de programmation obsolète MutationEvent et des événements traités synchroniquement associés DOMSubtreeModified, DOMNodeInserted, DOMNodeRemoved, DOMNodeRemovedFromDocument, DOMNodeInsertedIntoDocument et DOMCharacterDataModified a été supprimée. Cette interface était utilisée pour suivre les modifications dans l'arbre DOM, mais affectait négativement les performances des pages et entravait l'implémentation de certaines nouvelles fonctionnalités. Cette API était désactivée par défaut l'été dernier, mais Chrome conservait l'option MutationEventsEnabled pour restaurer le support. Comme alternative, il est recommandé d'utiliser l'API Mutation Observer.
- Les outils pour les développeurs web ont vu leurs capacités d'analyse de performance étendues.
En plus des nouvelles fonctionnalités et corrections de bugs, la nouvelle version a corrigé 14 vulnérabilités. Beaucoup de ces vulnérabilités ont été détectées grâce à des tests automatisés via les outils AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer et AFL. Aucune problème critique permettant de contourner tous les niveaux de protection du navigateur et d'exécuter du code en dehors de l'environnement sandbox n'a été identifié. Dans le cadre du programme de récompense pour la détection de vulnérabilités pour cette version, Google a attribué 8 récompenses d'un total de 17 000 dollars, dont une récompense de 10 000 dollars et deux récompenses respectives de 2 000 dollars, 1 000 dollars et 500 dollars.
Source : opennet.ru
