Rilascio di Chrome 90

Google ha presentato il rilascio del browser web Chrome 90. È disponibile anche una versione stabile del progetto open-source Chromium, che costituisce la base di Chrome. Il browser Chrome si distingue per l'uso dei loghi Google, un sistema di invio di notifiche in caso di crash, moduli per la riproduzione di contenuti video protetti (DRM), un sistema di installazione automatica degli aggiornamenti e la trasmissione di parametri RLZ durante le ricerche. Il prossimo rilascio di Chrome 91 è previsto per il 25 maggio.

Le principali novità in Chrome 90:

  • Per tutti gli utenti è stata attivata l'apertura dei siti per impostazione predefinita tramite HTTPS quando si digitano nomi di host nella barra degli indirizzi. Ad esempio, quando si inserisce l'host example.com, verrà aperto per impostazione predefinita il sito https://example.com; se si verificano problemi durante l'apertura, verrà eseguito il ripristino su http://example.com. Per gestire l'uso predefinito di "https://" è stata proposta l'impostazione "chrome://flags#omnibox-default-typed-navigations-to-https".
  • È stata implementata la possibilità di assegnare etichette diverse alle finestre per una chiara distinzione nel pannello del desktop. Il supporto per la modifica del nome della finestra semplificherà l'organizzazione del lavoro, permettendo di utilizzare finestre del browser separate per diverse attività, come l'apertura di finestre dedicate a compiti lavorativi, interessi personali, intrattenimento, materiali in sospeso, ecc. Il nome può essere modificato tramite la voce "Aggiungi nome della finestra" nel menu contestuale che appare facendo clic con il tasto destro su un'area vuota della barra delle schede. Dopo aver cambiato il nome, nella barra delle applicazioni verrà visualizzato il nome scelto invece del titolo del sito della scheda attiva, utile quando si aprono siti identici in finestre diverse collegate a conti separati. Il collegamento viene mantenuto tra le sessioni e dopo il riavvio le finestre verranno ripristinate con i nomi selezionati.
    Rilascio di Chrome 90
  • È stata aggiunta la possibilità di nascondere il "Elenco di lettura" senza dover modificare le impostazioni in "chrome://flags" ("chrome://flags#read-later"). Ora per nascondere si può usare l'opzione "Mostra Elenco di lettura" in fondo al menu contestuale, visualizzato facendo clic con il pulsante destro del mouse sulla barra dei segnalibri. Ricordiamo che nella versione precedente, per alcuni utenti, quando si cliccava sulla stella nella barra degli indirizzi accanto al pulsante "Aggiungi segnalibro", compariva un secondo pulsante "Aggiungi all'elenco di lettura", e nell'angolo destro della barra dei segnalibri compariva un menu "Elenco di lettura", in cui sono elencate tutte le pagine precedentemente aggiunte all'elenco. Aprendo una pagina dall'elenco, viene contrassegnata come letta. Anche le pagine nell'elenco possono essere contrassegnate manualmente come lette o non lette oppure rimosse dall'elenco.
  • È stata aggiunta la supporto per il partizionamento della rete per difendersi dai metodi di tracciamento degli spostamenti dell'utente tra i siti, basati sullo stoccaggio degli identificatori in aree non destinate alla memorizzazione permanente delle informazioni ("Supercookies"). Poiché le risorse nella cache sono memorizzate in uno spazio dei nomi condiviso, indipendentemente dal dominio sorgente, un sito può rilevare il caricamento delle risorse da un altro sito verificando la presenza di questa risorsa nella cache. La protezione si basa sull'applicazione del partizionamento della rete, il cui principio è quello di aggiungere nelle cache condivise un ulteriore legame delle voci al dominio, da cui è aperta la pagina principale, limitando così l'ambito della cache per gli script di tracciamento degli spostamenti solo al sito attuale (lo script nell'iframe non sarà in grado di verificare se la risorsa è stata caricata da un altro sito). Il prezzo del partizionamento è una riduzione dell'efficienza della cache, portando a un incremento insignificante del tempo di caricamento della pagina (massimo dell'1,32%, ma per l'80% dei siti tra lo 0,09% e lo 0,75%).
  • È stata ampliata la lista nera dei porti di rete per i quali viene bloccato l'invio di richieste HTTP, HTTPS e FTP, al fine di proteggere da attacchi di NAT slipstreaming, che consentono di stabilire una connessione di rete con server l'attaccante su qualsiasi porta UDP o TCP del sistema dell'utente, nonostante l'uso di intervalli di indirizzi interni (192.168.x.x, 10.x.x.x). Tra i porti bloccati sono stati aggiunti 554 (protocollo RTSP) e 10080 (utilizzato in Amanda backup e VMWare vCenter). In precedenza, erano già stati bloccati i porti 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 e 6566.
  • È stata aggiunta la supporto iniziale per l'apertura in browser di documenti PDF con moduli XFA.
  • Per alcuni utenti è stata attivata una nuova sezione delle impostazioni «Chrome Settings > Privacy and security > Privacy sandbox», che consente di gestire le impostazioni dell'API FLoC, mirata a determinare la categoria di interessi dell'utente senza identificazione individuale e senza legami con la cronologia di navigazione di specifici siti.
  • È stata implementata una notifica più chiara con un elenco di azioni consentite, visualizzata quando un utente si connette a un profilo con gestione centralizzata attivata.
  • L'interfaccia per la richiesta di autorizzazioni è diventata meno invadente. Le richieste che l'utente probabilmente non approverà vengono ora bloccate automaticamente con la visualizzazione di un indicatore corrispondente nella barra degli indirizzi, tramite il quale l'utente può accedere all'interfaccia per gestire le autorizzazioni associate a ciascun sito.
    Rilascio di Chrome 90
  • È stata abilitata la compatibilità con le estensioni Intel CET (Intel Control-flow Enforcement Technology) per la protezione hardware contro l'esecuzione di exploit basati su tecniche di programmazione orientata al ritorno (ROP, Return-Oriented Programming).
  • È proseguito il lavoro sulla traduzione del browser per applicare un linguaggio inclusivo. Il file «master_preferences» è stato rinominato in «initial_preferences» per non ferire i sentimenti degli utenti che percepiscono la parola 'master' come un riferimento a una schiavitù passata. Per garantire la compatibilità, il supporto per «master_preferences» sarà mantenuto nel browser ancora per un certo periodo. In precedenza, il browser aveva già eliminato l'uso delle parole «whitelist», «blacklist» e «native».
  • Nella versione per Android, attivando la modalità risparmio dati «Lite», è stata implementata una riduzione del bitrate durante il caricamento dei video quando si è connessi attraverso le reti dei provider di telefonia mobile, riducendo così i costi per gli utenti con tariffe basate sul traffico. Nella modalità «Lite» è anche prevista la compressione delle immagini richieste da risorse pubblicamente accessibili (che non richiedono autenticazione) tramite HTTPS.
  • È stato aggiunto un codec video AV1, ottimizzato per l'uso nelle videoconferenze basate sul protocollo WebRTC. L'utilizzo di AV1 nelle videoconferenze consente di migliorare l'efficienza della compressione e di garantire la trasmissione su canali con una larghezza di banda di 30 kbps.
  • In JavaScript, gli oggetti Array, String e TypedArrays implementano il metodo at(), che consente di utilizzare l'indicizzazione relativa (con la posizione relativa come indice dell'array), inclusa la possibilità di usare valori negativi in relazione alla fine (ad esempio, «arr.at(-1)» restituirà l'ultimo elemento dell'array).
  • In JavaScript, per le espressioni regolari è stata aggiunta la proprietà «.indices», che contiene un array con le posizioni iniziali e finali dei gruppi di corrispondenza. La proprietà viene riempita solo quando l'espressione regolare viene eseguita con il flag «/d». const re = /(a)(b)/d; const m = re.exec('ab'); console.log(m.indices[0]); // 0 — tutte le corrispondenze // → [0, 2] console.log(m.indices[1]); // 1 — primo gruppo di corrispondenza // → [0, 1] console.log(m.indices[2]); // 2 — secondo gruppo di corrispondenza // → [1, 2]
  • Ottimizzate le prestazioni delle proprietà 'super' (ad esempio, super.x), per le quali viene utilizzato un cache inline. Le prestazioni nell'utilizzo di 'super' sono ora comparabili a quelle dell'accesso a normali proprietà.
  • Accelerato significativamente il richiamo delle funzioni WebAssembly da JavaScript grazie all'uso del deployment inline. Questa ottimizzazione rimane per il momento sperimentale e richiede l'esecuzione con l'opzione '--turbo-inline-js-wasm-calls'.
  • Aggiunto l'API WebXR Depth Sensing, che consente di determinare la distanza tra gli oggetti nell'ambiente dell'utente e il dispositivo dell'utente, ad esempio, per creare applicazioni di realtà aumentata più realistiche. Ricordiamo che l'API WebXR consente di unificare l'interazione con vari tipi di dispositivi di realtà virtuale, dai visori 3D fissi a soluzioni basate su dispositivi mobili.
  • Stabilizzata la funzionalità di WebXR AR Lighting Estimation, che permette nelle sessioni WebXR per la realtà aumentata di determinare le condizioni di illuminazione ambientale per conferire ai modelli un aspetto più naturale e una integrazione più armoniosa con l'ambiente dell'utente.
  • In modalità Origin Trials (funzionalità sperimentali che richiedono un'attivazione separata) sono stati aggiunti diversi nuovi API, al momento limitati alla piattaforma Android. L'Origin Trial consente di utilizzare i suddetti API da applicazioni caricate da localhost o 127.0.0.1, o dopo aver effettuato la registrazione e ottenuto un token speciale che è valido per un periodo di tempo limitato per un sito specifico.
    • Il metodo getCurrentBrowsingContextMedia() consente di acquisire un flusso video MediaStream che riflette il contenuto della scheda attuale. A differenza di un metodo simile, getDisplayMedia(), quando viene chiamato getCurrentBrowsingContextMedia(), viene visualizzata una semplice finestra di dialogo per confermare o bloccare l'operazione di trasmissione del video del contenuto della scheda.
    • API Insertable Streams consente di manipolare flussi multimediali grezzi (raw) trasmessi tramite API MediaStreamTrack, come i dati provenienti da camera e microfono, il risultato della cattura dello schermo o i dati intermedi decodificati dal codec. Per rappresentare i fotogrammi grezzi vengono utilizzate le interfacce WebCodec, dopodiché si forma un flusso simile a quello generato dall'API WebRTC Insertable Streams sulla base di RTCPeerConnections. Dal punto di vista pratico, il nuovo API consente di implementare funzionalità come l'applicazione di metodi di machine learning per identificare o annotare oggetti in tempo reale o per aggiungere effetti come la rimozione dello sfondo, prima della codifica o dopo la decodifica del codec.
    • La possibilità di impacchettare le risorse in pacchetti (Web Bundle) per gestire in modo più efficiente il caricamento di un gran numero di file accessori (stili CSS, JavaScript, immagini, iframe). Tra i difetti dell'attuale supporto dei pacchetti per i file JavaScript (webpack), che si cerca di risolvere con il Web Bundle: nel cache HTTP può rimanere il pacchetto stesso, ma non le sue parti costituenti; la compilazione e l'esecuzione possono iniziare solo dopo che l'intero pacchetto è stato caricato; risorse aggiuntive, come CSS e immagini, devono essere codificate come stringhe JavaScript, portando a un aumento delle dimensioni e all'esecuzione di un'altra fase di parsing.
    • Supporto per la gestione delle eccezioni in WebAssembly.
  • Stabilito l'API Declarative Shadow DOM per creare nuovi rami radice nel Shadow DOM, ad esempio per separare lo stile di un elemento importato da terzi e il rispettivo sottoalbero DOM dal documento principale. L'API dichiarativa proposta consente di scollegare i rami DOM utilizzando solo HTML, senza la necessità di scrivere codice JavaScript.
  • Nella proprietà CSS aspect-ratio, che consente di ancorare esplicitamente il rapporto di aspetto a qualsiasi elemento (per il calcolo automatico della dimensione mancante fornendo solo l'altezza o la larghezza), è stata implementata la possibilità di interpolare valori durante le animazioni (una transizione fluida da un rapporto di aspetto a un altro).
  • È stata introdotta la possibilità di riflettere lo stato degli elementi HTML personalizzati (custom element) nel CSS tramite la pseudo-classe «:state()». Questa funzionalità è implementata analogamente alla possibilità per gli elementi HTML standard di cambiare il proprio stato in base all'interazione con l'utente.
  • Nella proprietà CSS «appearance» è stata aggiunta la supporto per il valore ‘auto’, che per default è impostato per <input type=color> e <select>, e sulla piattaforma Android, inoltre, per <input type=date>, <input type=datetime-local>, <input type=month>, <input type=time> e <input type=week>.
  • Nella proprietà CSS «overflow» è stata aggiunta la supporto per il valore «clip», che, se impostato, taglia il contenuto che esce dai limiti del blocco lungo il confine di overflow consentito senza possibilità di scorrimento. Il valore che determina quanto lontano il contenuto può fuoriuscire dai confini effettivi del blocco prima dell'inizio del taglio è definito tramite la nuova proprietà CSS «overflow-clip-margin». Rispetto a «overflow: hidden», l'uso di «overflow: clip» consente di ottenere prestazioni più elevate.
    Rilascio di Chrome 90Rilascio di Chrome 90
  • Il nuovo header Permissions-Policy è subentrato all'header HTTP Feature-Policy per gestire la delega dei poteri e l'attivazione di funzionalità avanzate, e supporta valori strutturati nei campi (ad esempio, ora è possibile specificare «Permissions-Policy: geolocation=()» invece di «Feature-Policy: geolocation ‘none'»).
  • Rafforzata la protezione contro l'uso dei Protocol Buffers per condurre attacchi causati dall'esecuzione speculativa delle istruzioni nei processori. La protezione è implementata tramite l'aggiunta del MIME-type «application/x-protobuffer» nell'elenco dei MIME-type che non vengono mai analizzati (sniffed), la cui gestione avviene tramite il meccanismo Cross-Origin-Read-Blocking. In precedenza, un MIME-type simile era già stato incluso in questo elenco: «application/x-protobuf», ma «application/x-protobuffer» era stato trascurato.
  • Nell'API File System Access è stata implementata la possibilità di spostare la posizione corrente in un file oltre la sua fine, riempiendo lo spazio creato con zeri durante la scrittura successiva tramite la chiamata a FileSystemWritableFileStream.write(). Questa funzionalità consente di creare file sparsi con spazi vuoti e semplifica notevolmente l'organizzazione della scrittura nei file per flussi con arrivo non ordinato di blocchi di dati (ad esempio, come avviene in BitTorrent).
  • Aggiunto il costruttore StaticRange con l'implementazione di tipi leggeri di Range che non richiedono di aggiornare tutti gli oggetti correlati ad ogni modifica dell'albero DOM.
  • È stata implementata la possibilità di specificare i parametri width e height per gli elementi <source>, specificati all'interno dell'elemento <picture>. Questa possibilità consente di calcolare il rapporto d'aspetto per gli elementi <picture>, analogamente a quanto fatto per <img>, <canvas> e <video>.
  • È stata rimossa dal WebRTC la supporto non standard per i canali dati RTP (RTP Data Channels); si raccomanda di utilizzare invece i canali dati basati su SCTP.
  • Le proprietà navigator.plugins e navigator.mimeTypes ora restituiscono sempre un valore vuoto (dopo la cessazione del supporto per Flash, non c'è più bisogno di queste proprietà).
  • È stata apportata una grande quantità di piccole migliorie agli strumenti per lo sviluppo web e aggiunto un nuovo strumento per il debug del CSS flexbox.
    Rilascio di Chrome 90

Oltre alle nuove funzionalità e correzioni di bug, nella nuova versione sono state risolte 37 vulnerabilità. Molte di queste vulnerabilità sono state identificate grazie ai test automatizzati effettuati con gli strumenti AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Non sono emersi problemi critici che possano eludere tutti i livelli di protezione del browser e consentire l'esecuzione di codice nel sistema al di fuori dell'ambiente sandbox. Nell'ambito del programma di ricompense per la scoperta di vulnerabilità per la versione attuale, Google ha erogato 19 premi per un totale di 54.000 dollari USA (un premio da 20.000 dollari, un premio da 10.000 dollari, due premi da 5.000 dollari, tre premi da 3.000 dollari, un premio da 2.000 dollari, uno da 1.000 dollari e quattro premi da 500 dollari). L'importo di 6 ricompense non è ancora stato definito.

È importante notare che ieri, dopo la formazione dell'aggiornamento correttivo 89.0.4389.128, ma prima del rilascio di Chrome 90, è stato pubblicato un ulteriore exploit che utilizzava una nuova vulnerabilità zero-day, non corretta in Chrome 89.0.4389.128. Non è ancora chiaro se questo problema sia stato risolto in Chrome 90. Come nel primo caso, l'exploit copre solo una vulnerabilità e non contiene codice per eludere l'isolamento della sandbox (eseguendo Chrome con il flag «—no-sandbox», l'exploit consente l'apertura di notepad aprendo una pagina web sulla piattaforma Windows). La vulnerabilità collegata al nuovo exploit colpisce la tecnologia WebAssembly.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster