Lanzamiento de Chrome 90

La empresa Google ha presentado el lanzamiento del navegador web Chrome 90. Al mismo tiempo, se encuentra disponible la versión estable del proyecto de código abierto Chromium, que es la base de Chrome. El navegador Chrome se distingue por el uso de los logotipos de Google, una sistema de envío de notificaciones en caso de fallos, módulos para la reproducción de contenido de video protegido (DRM), un sistema de actualización automática y la transmisión de parámetros RLZ durante las búsquedas. La siguiente versión de Chrome 91 está programada para el 25 de mayo.

Principales cambios en Chrome 90:

  • Ahora todos los usuarios pueden abrir sitios por defecto a través de HTTPS al introducir nombres de host en la barra de direcciones. Por ejemplo, al ingresar el host example.com, se abrirá por defecto el sitio https://example.com, y si surgen problemas al abrirlo, se revertirá a http://example.com. Para gestionar el uso predeterminado de «https://», se ha propuesto la configuración «chrome://flags#omnibox-default-typed-navigations-to-https».
  • Se ha implementado la función de asignar diferentes etiquetas a las ventanas para su fácil diferenciación en la barra de tareas. El soporte para cambiar el nombre de la ventana facilitará la organización del trabajo al utilizar ventanas del navegador para diferentes tareas, por ejemplo, al abrir ventanas para tareas laborales, intereses personales, entretenimiento, materiales pendientes, etc. El nombre se cambia a través de la opción «Agregar nombre a la ventana» en el menú contextual que aparece al hacer clic derecho en un área vacía de la barra de pestañas. Después de cambiar el nombre, en la barra de aplicaciones, en lugar del nombre del sitio de la pestaña activa, se mostrará el nombre seleccionado, lo que puede ser útil al abrir los mismos sitios en diferentes ventanas vinculadas a diferentes cuentas. La vinculación se conserva entre sesiones y después de reiniciar, las ventanas se restaurarán con los nombres elegidos.
    Lanzamiento de Chrome 90
  • Se ha añadido la opción de ocultar la «Lista de lectura» (Reading List) sin necesidad de modificar la configuración en «chrome://flags» («chrome://flags#read-later»). Para ocultarla, ahora se puede utilizar la opción «Mostrar lista de lectura» en la parte inferior del menú contextual que se muestra al hacer clic derecho en la barra de marcadores. Recordamos que en la última versión, a algunos usuarios al hacer clic en la estrella en la barra de direcciones, además del botón «Añadir marcador», les aparece un segundo botón «Añadir a la lista de lectura», y en la esquina derecha de la barra de marcadores aparece un menú «Lista de lectura» que enumera todas las páginas previamente añadidas a la lista. Al abrir una página desde la lista, se marca como leída. Las páginas en la lista también pueden ser marcadas manualmente como leídas o no leídas, o eliminadas de la lista.
  • Se ha añadido soporte para la segmentación de red para proteger contra métodos de seguimiento de movimiento del usuario entre sitios, basados en el almacenamiento de identificadores en áreas no destinadas al almacenamiento permanente de información («Supercookies»). Dado que los recursos en caché se almacenan en un espacio de nombres compartido, independientemente del dominio de origen, un sitio puede identificar la carga de recursos de otro sitio mediante la verificación de la existencia de este recurso en la caché. La protección se basa en la aplicación de la segmentación de red (Network Partitioning), cuyo objetivo es añadir a las cachés compartidas un enlace adicional a el dominio, desde el cual se abre la página principal, lo que limita el alcance de la caché para los scripts de seguimiento de movimiento solo al sitio actual (un script en iframe no podrá comprobar si el recurso se cargó desde otro sitio). El costo de la segmentación es la disminución de la eficiencia del almacenamiento en caché, lo que conlleva un ligero aumento en el tiempo de carga de la página (máximo del 1.32%, pero para el 80% de los sitios entre un 0.09-0.75%).
  • Se ha ampliado la lista negra de puertos de red para los cuales se bloquea el envío de solicitudes HTTP, HTTPS y FTP con el fin de protegerse contra el ataque de NAT slipstreaming, que permite al abrir una página web especialmente preparada por un atacante en el navegador establecer una conexión de red con servidores El ataque a cualquier puerto UDP o TCP en el sistema del usuario, a pesar de la aplicación de un rango de direcciones internas (192.168.x.x, 10.x.x.x), está permitido. Se han añadido a la lista de puertos prohibidos el 554 (protocolo RTSP) y el 10080 (utilizado en la copia de seguridad de Amanda y VMWare vCenter). Anteriormente, ya se habían bloqueado los puertos 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 y 6566.
  • Se ha añadido soporte inicial para abrir documentos PDF con formularios XFA en el navegador.
  • Para algunos usuarios, se ha activado una nueva sección de configuración «Chrome Settings > Privacy and security > Privacy sandbox», que permite gestionar las opciones de la API FLoC, destinada a determinar la categoría de intereses del usuario sin realizar identificación individual y sin vinculación al historial de visitas a sitios específicos.
  • Se ha proporcionado un aviso más claro con una lista de acciones permitidas, que se muestra cuando el usuario se conecta a un perfil que tiene habilitada la gestión centralizada.
  • La interfaz de solicitud de permisos se ha vuelto menos intrusiva. Las solicitudes que el usuario probablemente no aprobaría ahora se bloquean automáticamente, mostrando un indicador correspondiente en la barra de direcciones, a través del cual el usuario puede acceder a la interfaz de gestión de permisos vinculados a cada sitio.
    Lanzamiento de Chrome 90
  • Se ha habilitado el soporte para extensiones Intel CET (Intel Control-flow Enforcement Technology) para la protección de hardware contra la ejecución de exploits construidos utilizando técnicas de programación orientada a retorno (ROP, Return-Oriented Programming).
  • Se ha continuado el trabajo para traducir el navegador a una terminología inclusiva. El archivo «master_preferences» ha sido renombrado a «initial_preferences», para no herir los sentimientos de los usuarios que perciben la palabra master como un recordatorio de la esclavitud de sus antepasados. Para mantener la compatibilidad, el soporte de «master_preferences» seguirá existiendo en el navegador durante un tiempo. Anteriormente, el navegador ya se había deshecho del uso de las palabras «whitelist», «blacklist» y «native».
  • En la versión para Android, al activar el modo de ahorro de datos «Lite», se implementa una reducción de la tasa de bits al cargar videos a través de redes de operadores móviles, lo que permitirá reducir los gastos de los usuarios que tienen planes basados en el uso de datos. En el modo «Lite» también se garantiza la compresión de imágenes solicitadas desde recursos de acceso público (que no requieren autenticación) por medio de HTTPS.
  • Se ha añadido un codificador para el formato de video AV1, específicamente optimizado para su uso en videoconferencias basadas en el protocolo WebRTC. El uso de AV1 en videoconferencias permite mejorar la eficiencia de la compresión y posibilitar la transmisión en canales con un ancho de banda de 30 kbit/s.
  • En JavaScript, en los objetos Array, String y TypedArrays se ha implementado el método at(), que permite utilizar indexación relativa (la posición relativa se indica como índice del array), incluido el uso de valores negativos con respecto al final (por ejemplo, «arr.at(-1)» devolverá el último elemento del array).
  • En JavaScript, para las expresiones regulares se ha añadido la propiedad «.indices», que contiene un array con las posiciones iniciales y finales de los grupos de coincidencia. Esta propiedad se llena solo cuando se ejecuta una expresión regular con la bandera «/d». const re = /(a)(b)/d; const m = re.exec('ab'); console.log(m.indices[0]); // 0 — todos los grupos de coincidencia // → [0, 2] console.log(m.indices[1]); // 1 — primer grupo de coincidencia // → [0, 1] console.log(m.indices[2]); // 2 — segundo grupo de coincidencia // → [1, 2]
  • Se ha optimizado el rendimiento de las propiedades «super» (por ejemplo, super.x), que utilizan cachés en línea. El rendimiento del uso de «super» ahora es comparable al rendimiento del acceso a propiedades normales.
  • Se ha acelerado significativamente la llamada a funciones de WebAssembly desde JavaScript mediante la implementación de desdoblamiento en línea. Esta optimización sigue siendo experimental y requiere ser ejecutada con la bandera «--turbo-inline-js-wasm-calls».
  • Se ha añadido la API WebXR Depth Sensing, que permite medir la distancia entre los objetos en el entorno del usuario y el dispositivo del usuario, por ejemplo, para crear aplicaciones de realidad aumentada más realistas. Recordemos que la API WebXR permite unificar el trabajo con diferentes clases de dispositivos de realidad virtual, desde visores 3D estacionarios hasta soluciones basadas en dispositivos móviles.
  • Se ha estabilizado la capacidad de WebXR AR Lighting Estimation, que permite en sesiones de WebXR para realidad aumentada determinar las características de la iluminación ambiental para dar a los modelos un aspecto más natural y una integración más armónica con el entorno del usuario.
  • En el modo Origin Trials (capacidades experimentales que requieren activación separada), se han añadido varias nuevas API que por el momento están limitadas a la plataforma Android. Origin Trial permite trabajar con la API especificada desde aplicaciones cargadas desde localhost o 127.0.0.1, o después de completar el registro y obtener un token especial que tiene un tiempo de validez limitado para un sitio específico.
    • El método getCurrentBrowsingContextMedia(), que permite organizar la captura de un flujo de video MediaStream que refleja el contenido de la pestaña actual. A diferencia del método similar getDisplayMedia(), al llamar a getCurrentBrowsingContextMedia() se muestra al usuario un diálogo simple para confirmar o bloquear la operación de transmisión de video con el contenido de la pestaña.
    • La API Insertable Streams, que permite manipular flujos multimedia sin procesar (raw) transmitidos a través de la API MediaStreamTrack, como datos de la cámara y el micrófono, el resultado de la captura de pantalla o datos intermedios de decodificación del códec. Para representar fotogramas sin procesar se utilizan las interfaces WebCodec, a partir de las cuales se forma un flujo similar al que la API WebRTC Insertable Streams genera en base a RTCPeerConnections. Desde un punto de vista práctico, la nueva API permite implementar funcionalidades como el uso de métodos de aprendizaje automático para identificar o anotar objetos en tiempo real o para agregar efectos, como el recorte de fondo, antes de la codificación o después de la decodificación del códec.
    • La posibilidad de empaquetar recursos en paquetes (Web Bundle) para organizar una carga más eficaz de un gran número de archivos complementarios (estilos CSS, JavaScript, imágenes, iframe). Entre las desventajas de la actual compatibilidad con paquetes para archivos JavaScript (webpack), que se intenta solucionar en Web Bundle: el paquete puede residir en la caché HTTP, pero no sus partes constituyentes; la compilación y ejecución puede comenzar solo después de que se haya cargado completamente el paquete; recursos adicionales, como CSS e imágenes, deben codificarse en forma de cadenas JavaScript, lo que lleva a un aumento del tamaño y a la ejecución de una etapa adicional de análisis.
    • Soporte para el manejo de excepciones en WebAssembly.
  • API Declarative Shadow DOM estabilizado para crear nuevas ramas raíz en Shadow DOM, por ejemplo, para separar el estilo de terceros importado del elemento y la subrama DOM asociada del documento principal. La API declarativa propuesta permite desacoplar ramas DOM únicamente con HTML sin necesidad de escribir código en JavaScript.
  • En la propiedad CSS aspect-ratio, que permite vincular explícitamente el ratio de aspecto a cualquier elemento (para calcular automáticamente el tamaño faltante al especificar solo la altura o el ancho), se ha implementado la posibilidad de interpolación de valores durante la animación (la transición suave de un ratio de aspecto a otro).
  • Se ha añadido la posibilidad de reflejar el estado de los elementos HTML personalizados (custom element) en CSS a través de la pseudo-clase ‘:state()’. Esta funcionalidad se ha реализado de manera similar a la capacidad de los elementos HTML estándar para cambiar su estado según la interacción del usuario.
  • En la propiedad CSS ‘appearance’ se ha agregado soporte para el valor ‘auto’, que se establece por defecto para y , y en la plataforma Android adicionalmente para , , , y .
  • Se ha agregado soporte para el valor "clip" en la propiedad CSS "overflow", que recorta el contenido que excede los límites del bloque sin posibilidad de desplazamiento. El valor que determina cuánto puede salir el contenido más allá del límite real del bloque antes de que comience el recorte se establece a través de la nueva propiedad CSS "overflow-clip-margin". En comparación con "overflow: hidden", el uso de "overflow: clip" permite lograr un rendimiento más alto.
    Lanzamiento de Chrome 90Lanzamiento de Chrome 90
  • El encabezado HTTP Feature-Policy ha sido reemplazado por un nuevo encabezado Permissions-Policy para gestionar la delegación de permisos e inclusión de funciones avanzadas, que ahora cuenta con soporte para valores estructurados (por ejemplo, se puede especificar "Permissions-Policy: geolocation=()" en lugar de "Feature-Policy: geolocation 'none'").
  • Se ha reforzado la protección contra el uso de Protocol Buffers para llevar a cabo ataques causados por la ejecución especulativa de instrucciones en procesadores. La protección se implementa mediante la adición del tipo MIME "application/x-protobuffer" a la lista de tipos MIME que nunca se escuchan (sniffed), cuyo procesamiento se lleva a cabo a través del mecanismo Cross-Origin-Read-Blocking. Anteriormente, ya se había incluido el tipo MIME "application/x-protobuf" en esa lista, pero se había pasado por alto "application/x-protobuffer".
  • En la API File System Access se ha implementado la capacidad de desplazar la posición actual en un archivo más allá de su final, llenando el espacio creado con ceros en las escrituras subsiguientes mediante la llamada a FileSystemWritableFileStream.write(). Esta característica permite crear archivos dispersos con huecos y simplifica enormemente la organización de escritura en archivos de flujos con llegada desordenada de bloques de datos (como se practica en BitTorrent).
  • Se ha agregado el constructor StaticRange con la implementación de tipos ligeros de Range, que no requieren la actualización de todos los objetos relacionados con cada cambio en el árbol DOM.
  • Se ha implementado la posibilidad de especificar los parámetros width y height para los elementos <source>, indicados dentro del elemento <picture>. Esta opción permite calcular el coeficiente de proporción para los elementos <picture>, de manera similar a como se hace para <img>, <canvas> y <video>.
  • Se ha eliminado el soporte no estandarizado para los canales de datos RTP (RTP Data Channels) en WebRTC, y se recomienda utilizar canales de datos basados en SCTP en su lugar.
  • Las propiedades navigator.plugins y navigator.mimeTypes ahora siempre devuelven un valor vacío (después de que se dejó de soportar Flash, ya no hay necesidad de estas propiedades).
  • Se han realizado una gran cantidad de pequeñas mejoras en las herramientas para desarrolladores web y se ha añadido una nueva herramienta para depurar CSS flexbox.
    Lanzamiento de Chrome 90

Además de las innovaciones y correcciones de errores, la nueva versión ha solucionado 37 vulnerabilidades. Muchas de las vulnerabilidades se identificaron como resultado de pruebas automatizadas con herramientas como AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer y AFL. No se han encontrado problemas críticos que permitan evadir todos los niveles de protección del navegador y ejecutar código en el sistema más allá del entorno aislado. En el marco del programa de recompensas por la detección de vulnerabilidades para esta versión, Google ha otorgado 19 premios por un total de 54,000 dólares (un premio de 20,000 dólares, un premio de 10,000 dólares, dos premios de 5,000 dólares, tres premios de 3,000 dólares, un premio de 2,000 dólares, uno de 1,000 dólares y cuatro premios de 500 dólares). El monto de 6 recompensas aún no se ha determinado.

Cabe destacar que ayer, tras la formación de la versión correctiva 89.0.4389.128, pero antes del lanzamiento de Chrome 90, se publicó otro exploit, que utilizaba una nueva vulnerabilidad de día cero que no se había corregido en Chrome 89.0.4389.128. Aún no está claro si este problema se ha solucionado en Chrome 90. Al igual que en el primer caso, el exploit abarca solo una vulnerabilidad y no contiene código para eludir el aislamiento sandbox (al iniciar Chrome con la opción '—no-sandbox', el exploit permite abrir el bloc de notas al acceder a una página web en la plataforma Windows). La vulnerabilidad relacionada con el nuevo exploit afecta a la tecnología WebAssembly.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster