Udgivelse af Chrome 90

Google har præsenteret udgivelsen af webbrowseren Chrome 90. Samtidig er der en stabil udgave af det frie projekt Chromium, som danner grundlaget for Chrome. Chrome-browsere adskiller sig ved brug af Google-logos, en meddelelsessystem ved crashes, moduler til afspilning af beskyttet videoinhold (DRM), automatisk opdatering og overførsel af RLZ-parametre under søgning. Den næste udgave, Chrome 91, er planlagt til den 25. maj.

De vigtigste ændringer i Chrome 90:

  • For alle brugere er der blevet indført standard åbning af hjemmesider via HTTPS, når der indtastes værtsnavne i adresselinjen. For eksempel, når man skriver værten example.com, åbnes hjemmesiden som https://example.com som standard, og hvis der opstår problemer, rulles der tilbage til http://example.com. For at styre brugen af standard «https://» er der foreslået en indstilling «chrome://flags#omnibox-default-typed-navigations-to-https».
  • Muligheden for at tildele forskellige etiketter til vinduer er blevet implementeret, så de nemmere kan adskilles på desktoppanelet. Understøttelsen af at ændre vinduesnavn gør det lettere at organisere arbejdet, når man bruger forskellige browservinduer til forskellige opgaver, for eksempel ved at åbne separate vinduer til arbejdsopgaver, personlige interesser, underholdning, forsinkede materialer osv. Navnet ændres gennem punktet «Tilføj vinduesnavn» i kontekstmenuen, der vises ved højreklik på et tomt område i fanebladene. Efter navneskift vises det valgte navn i applikationspanelet i stedet for navnet på den aktive fane, hvilket kan være nyttigt, når man åbner identiske hjemmesider i forskellige vinduer knyttet til separate konti. Bindingen bevares mellem sessioner, og efter genstart vil vinduerne blive gendannet med de valgte navne.
    Udgivelse af Chrome 90
  • Muligheden for at skjule "Læselisten" (Reading List) er blevet tilføjet uden behov for at ændre indstillingerne i "chrome://flags" ("chrome://flags#read-later"). For at skjule den kan man nu bruge indstillingen "Show Reading List" i bunden af kontekstmenuen, der vises, når man højreklikker på bookmarks-bjælken. Vi minder om, at i den tidligere udgave havde nogle brugere, når de klikkede på stjernen i adresselinjen, udover knappen "Tilføj bogmærke" også en anden knap "Tilføj til læseliste", og i højre hjørne af bookmarks-bjælken vises menuen "Læseliste", hvor alle tidligere tilføjede sider til listen er opført. Når man åbner en side fra listen, markeres den som læst. Siderne på listen kan også manuelt markeres som læst eller ulæst eller fjernes fra listen.
  • Understøttelsen af netværkssegmentering til beskyttelse mod metoder, der spor brugerens bevægelser mellem websteder baseret på opbevaring af identificatorer i områder, der ikke er beregnet til permanent opbevaring af informationer ("Supercookies"), er blevet tilføjet. Da ressourcer i cachen opbevares i et fælles navnerum uafhængigt af det oprindelige domæne, kan ét websted bestemme indlæsningen af ressourcer fra et andet websted ved at kontrollere, om denne ressource findes i cachen. Beskyttelsen er baseret på implementeringen af netværkssegmentering (Network Partitioning), hvis kerne er at tilføje en ekstra binding af poster til domænet, som åbnede hovedsiden, hvilket begrænser cache-området for sporingsscripts til kun det nuværende websted (et script fra iframe vil ikke kunne kontrollere, om ressourcen blev indlæst fra et andet websted). Prisen for segmenteringen er et fald i cachingeffektiviteten, hvilket fører til en ubetydelig stigning i sideindlæsningstiden (maksimalt 1,32%, men for 80% af webstederne 0,09-0,75%).
  • Den sorte liste over netværksporte, for hvilke afsendelse af HTTP-, HTTPS- og FTP-anmodninger blokeres som beskyttelse mod NAT slipstreaming-angrebet, der muliggør, at når en specifikt forberedt webside åbnes i browseren, kan der etableres en netværksforbindelse med server en angreb mod enhver UDP- eller TCP-port på brugerens system, uanset om der anvendes interne adresseområder (192.168.x.x, 10.x.x.x). De forbudte porte inkluderer 554 (RTSP-protokol) og 10080 (bruges i Amanda backup og VMWare vCenter). Tidligere blev portene 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 og 6566 allerede blokeret.
  • Der er tilføjet indledende support til at åbne PDF-dokumenter med XFA-former i browseren.
  • For en del brugere er den nye indstillingssektion "Chrome Settings > Privacy and security > Privacy sandbox" aktiveret, som gør det muligt at styre API FLoC-indstillinger, der sigter mod at bestemme brugerens interessekategori uden individuel identifikation og uden at være bundet af besøgshistorik på specifikke websteder.
  • Der er vist en mere forståelig meddelelse med en liste over tilladte handlinger, der vises, når brugeren opretter forbindelse til en profil, for hvilken centraliseret styring er aktiveret.
  • Brugergrænsefladen til anmodning om tilladelser er blevet mindre påtrængende. Anmodninger, som brugeren sandsynligvis ikke vil godkende, blokeres automatisk med visning af en passende indikator i adresselinjen, hvormed brugeren kan gå til grænsefladen for at styre tilladelser til hver enkelt websted.
    Udgivelse af Chrome 90
  • Der er tilføjet support til Intel CET (Intel Control-flow Enforcement Technology) for hardwarebeskyttelse mod udførelse af exploits, der er bygget ved hjælp af teknikker til return-oriented programming (ROP).
  • Arbejdet med at oversætte browseren til inklusiv terminologi fortsætter. Filen "master_preferences" er blevet omdøbt til "initial_preferences" for ikke at såre følelserne hos brugere, der opfatter ordet master som en henvisning til deres forfædres tidligere slaveri. For at bevare kompatibiliteten vil supporten for "master_preferences" stadig være tilgængelig i browseren i nogen tid. Browseren har tidligere allerede fjernet brugen af ordene "whitelist", "blacklist" og "native".
  • I Android-versionen, når man aktiverer dataeconomi-tilstanden „Lite“, er der implementeret et lavere bitrate ved videoafspilning, når man er tilsluttet via mobilnetværk. Dette vil hjælpe med at reducere omkostningerne for brugere med datakontrollerede abonnementer. I „Lite“-tilstanden er der også sikret kompression af billeder, der anmodes fra offentligt tilgængelige ressourcer (som ikke kræver autentificering) via HTTPS.
  • En AV1-videoencoder er blevet tilføjet, som er specielt optimeret til brug i videokonferencer baseret på WebRTC-protokollen. Anvendelsen af AV1 i videokonferencer øger kompressionseffektiviteten og muliggør transmission på kanaler med en båndbredde på omkring 30 kbit/s.
  • I JavaScript er der implementeret en metode at() i objekterne Array, String og TypedArrays, som tillader relativ indeksering (den relative position angives som indeks i arrayet), herunder negative værdier i forhold til slutningen (for eksempel vil „arr.at(-1)“ returnere det sidste element i arrayet).
  • I JavaScript for regulære udtryk er der tilføjet en egenskab „.indices“, som indeholder et array med start- og slutpositioner for matchende grupper. Egenskaben udfyldes kun, når regulære udtryk udføres med flaget „/d“. const re = /(a)(b)/d; const m = re.exec(‘ab’); console.log(m.indices[0]); // 0 — alle matchende grupper // → [0, 2] console.log(m.indices[1]); // 1 — første matchende gruppe // → [0, 1] console.log(m.indices[2]); // 2 — anden matchende gruppe // → [1, 2]
  • Der er udført optimering af ydeevnen for egenskaberne „super“ (for eksempel super.x), hvor inline-cache er involveret. Ydeevnen ved brug af „super“ er nu nær den samme som ved adgang til almindelige egenskaber.
  • Opkald af WebAssembly-funktioner fra JavaScript er blevet betydeligt hurtigere ved at anvende inline-udrulning. Den nævnte optimering forbliver i øjeblikket eksperimentel og kræver, at der køres med flaget „—turbo-inline-js-wasm-calls“.
  • API'en WebXR Depth Sensing er tilføjet, hvilket muliggør bestemmelse af afstanden mellem objekter i brugerens omgivelser og brugerens enhed, for eksempel til at skabe mere realistiske applikationer i augmented reality. Det skal bemærkes, at API'en WebXR gør det muligt at standardisere arbejdet med forskellige klasser af virtual reality-enheder, fra stationære 3D-headsets til løsninger baseret på mobile enheder.
  • Muligheden for WebXR AR Lighting Estimation er stabiliseret, hvilket gør det muligt at bestemme omgivelseslysets parametre i WebXR-sessioner for augmented reality for at give modeller et mere naturligt udseende og en mere harmonisk integration med brugerens omgivelser.
  • I Origin Trials (eksperimentelle funktioner, der kræver separat aktivering) er der tilføjet flere nye API'er, der endnu er begrænset til Android-platformen. Origin Trial indebærer muligheden for at arbejde med den angivne API fra applikationer, der er indlæst fra localhost eller 127.0.0.1, eller efter registrering og modtagelse af en særlig token, der fungerer i begrænset tid for et bestemt websted.
    • Metoden getCurrentBrowsingContextMedia(), som giver mulighed for at organisere optagelse af et MediaStream-video, der afspejler indholdet af den nuværende fane. I modsætning til den lignende metode getDisplayMedia() præsenteres brugeren for en simpel dialogboks til bekræftelse eller blokering af videooverførselsoperationen med indholdet af fanen.
    • API'en Insertable Streams, der giver mulighed for at manipulere rå (raw) multimediestrømme, der overføres via API MediaStreamTrack, såsom data fra kameraet og mikrofonen, skærmoptagelse eller intermediale data fra codec-dekodning. For at præsentere de rå rammer anvendes interface WebCodec, hvorefter der dannes en strøm, der ligner den, som API'en WebRTC Insertable Streams genererer baseret på RTCPeerConnections. Praktisk set muliggør den nye API implementeringen af funktioner som anvendelse af maskinlæringsmetoder til identifikation eller annotering af objekter i realtid eller tilføjelse af effekter som baggrundsfjernelse før kodning eller efter dekodning med codec.
    • Mulighed for at pakke ressourcer i pakker (Web Bundle) for at organisere en mere effektiv indlæsning af et stort antal tilhørende filer (CSS-stile, JavaScript, billeder, iframe). Blandt ulemperne ved den eksisterende understøttelse af pakker til JavaScript-filer (webpack), som man forsøger at løse i Web Bundle: i HTTP-cachen kan selve pakken blive siddende, men ikke dens bestanddele; kompilering og udførelse kan kun begynde efter, at pakken er blevet fuldt indlæst; yderligere ressourcer, såsom CSS og billeder, skal koders i form af JavaScript-strenge, hvilket fører til en stigning i størrelsen og udførelsen af endnu et parsing-trin.
    • Understøttelse af undtagelseshåndtering i WebAssembly.
  • Stabiliseret API Declarative Shadow DOM til at oprette nye rodgrene i Shadow DOM, for eksempel for at adskille importeret tredjeparts stil fra elementet og den tilknyttede DOM-subtree fra hoveddokumentet. Det foreslåede deklarative API muliggør, at man kan skille DOM-grene kun med HTML uden nødvendigheden af at skrive kode i JavaScript.
  • I CSS-egenskaben aspect-ratio, som gør det muligt eksplicit at knytte forholdet til enhver element (for automatisk beregning af den manglende størrelse ved kun at angive højden eller bredden), er der implementeret mulighed for interpolering af værdier ved animation (glidende overgang fra et aspektforhold til et andet).
  • Muligheden for at reflektere tilstanden af egne HTML-elementer (custom element) i CSS via pseudoklassen ':state()' er blevet tilføjet. Funktionaliteten er implementeret analogt med muligheden for, at standard HTML-elementer kan ændre deres tilstand baseret på brugerinteraktion.
  • I CSS-egenskaben 'appearance' er der tilføjet understøttelse for værdien 'auto', som som standard anvendes til og , samt på Android-platformen yderligere for , , , og .
  • I CSS-egenskaben 'overflow' er der tilføjet understøttelse for værdien 'clip', hvor indhold, der overskrider blokken, beskæres ved grænsen for den tilladte overflod af blokken uden mulighed for rulle. Værdien, der bestemmer, hvor langt indholdet kan overskride den faktiske grænse for blokken, inden beskæringen begynder, angives gennem den nye CSS-egenskab 'overflow-clip-margin'. Sammenlignet med 'overflow: hidden' muliggør brugen af 'overflow: clip' en højere ydeevne.
    Udgivelse af Chrome 90Udgivelse af Chrome 90
  • Den gamle HTTP-header Feature-Policy er blevet afløst af den nye header Permissions-Policy, som styrer delegation af beføjelser og aktivering af udvidede funktioner. Denne header understøtter strukturerede værdier i felterne (for eksempel kan man nu angive "Permissions-Policy: geolocation=()" i stedet for "Feature-Policy: geolocation 'none'").
  • Beskyttelsen mod brug af Protocol Buffers til angreb forårsaget af spekulativ instruktionseexecutions i processorer er blevet styrket. Beskyttelsen implementeres ved at tilføje MIME-typen "application/x-protobuffer" til listen over aldrig sniffede MIME-typer, som behandles via mekanismen Cross-Origin-Read-Blocking. Tidligere blev MIME-typen "application/x-protobuf" allerede føjet til en sådan liste, men "application/x-protobuffer" blev overset.
  • API'en for File System Access har fået mulighed for at forskyde den aktuelle position i filen ud over dens ende, med nuludfyldning af det dannede hul ved efterfølgende skrivning via kaldet FileSystemWritableFileStream.write(). Denne funktion gør det muligt at oprette sparse filer med huller og letter i høj grad organiseringen af skrivning til fil for strømme med uordnet ankomst af datablokke (for eksempel praktiseres dette i BitTorrent).
  • Der er tilføjet en StaticRange-konstruktør, som implementerer letvægts typer af Range, der ikke kræver opdatering af alle relaterede objekter ved hver ændring af DOM-træet.
  • Muligheden for at angive parametre for width og height for elementer er blevet implementeret <source>, der er angivet inde i elementet <picture>. Denne mulighed gør det muligt at beregne aspektforholdet for elementer <picture>, på samme måde som det er gjort for <img>, <canvas> og <video>.
  • Støtten for ikke-standardiserede RTP-datakanaaler (RTP Data Channels) er blevet fjernet fra WebRTC, og i stedet anbefales det at bruge SCTP-baserede datakanaler.
  • Egenskaberne navigator.plugins og navigator.mimeTypes returnerer nu altid en tom værdi (da behovet for disse egenskaber forsvandt med ophævelsen af Flash-support).
  • En stor mængde mindre forbedringer er blevet implementeret i værktøjerne til webudviklere, og et nyt værktøj til debugging af CSS flexbox er blevet tilføjet.
    Udgivelse af Chrome 90

Udover nye funktioner og fejlrettelser er der i den nye version rettet 37 sårbarheder. Mange af sårbarhederne blev identificeret som følge af automatiseret testning ved hjælp af værktøjerne AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer og AFL. Der er ikke opdaget kritiske problemer, der tillader omgåelse af alle niveauer af browserbeskyttelse og udførelse af kode på systemet uden for sandkassemiljøet. Som en del af programmet til at belønne opdagelse af sårbarheder har Google betalt 19 præmier på i alt 54.000 USD (én præmie på $20.000, én præmie på $10.000, to præmier på $5.000, tre præmier på $3.000, én præmie på $2.000, én præmie på $1.000 og fire præmier på $500). Størrelsen på 6 præmier er endnu ikke fastsat.

Det er værd at bemærke, at der i går, efter dannelsen af den korrigerende udgave 89.0.4389.128, men før udgivelsen af Chrome 90, blev offentliggjort endnu en exploit, der udnyttede en ny 0-day sårbarhed, som ikke blev rettet i Chrome 89.0.4389.128. Det er endnu ikke klart, om problemet er løst i Chrome 90. Som i første tilfælde dækker exploit kun én sårbarhed og indeholder ikke kode til at omgå sandkasseisoleringen (ved at starte chrome med flaget "—no-sandbox" sikrer exploit, at Notepad åbnes ved indlæsning af webside på Windows-platformen). Sårbarheden relateret til den nye exploit vedrører teknologien WebAssembly.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster