Google har præsenteret udgivelsen af webbrowseren Chrome 104. Samtidig er den stabile version af det frie projekt Chromium, som danner grundlaget for Chrome, tilgængelig. Browseren Chrome adskiller sig fra Chromium ved at bruge Google-logoer, have et system til at sende meddelelser i tilfælde af nedbrud, moduler til afspilning af kopibeskyttet videoinhold (DRM), et automatisk opdateringssystem, konstant aktiveret sandbox-isolering, levering af nøgler til Google API og overførsel af RLZ-parametre under søgning. For dem, der har brug for mere tid til opdatering, understøttes en særlig Extended Stable-version, som følger med i 8 uger. Næste udgivelse af Chrome 105 er planlagt til den 30. august.
De væsentligste ændringer i Chrome 104:
- Der er indført en grænse for Cookie's levetid — alle nye eller opdaterede Cookies vil automatisk blive slettet efter 400 dages eksistens, selvom den angivne udløbstid via attributterne Expires og Max-Age overstiger 400 dage (for sådanne Cookies vil levetiden blive forkortet til 400 dage). Cookies, der er oprettet før indførelsen af denne grænse, vil bevare deres levetid, selvom den overstiger 400 dage, men vil være begrænset ved opdatering. Ændringen afspejler de nye krav, der er nævnt i udkastet til den nye specifikation.
- Der er indført blokering af anmodninger fra iframe til URL'er, der refererer til det lokale filsystem ("filesystem://").
- For at fremskynde indlæsningen af siden er der tilføjet en ny optimering, der sikrer, at forbindelsen til måhosten oprettes, når der trykkes på linket, uden at vente på, at knappen slipper eller fingeren fjernes fra den berøringsfølsomme skærm.
- Der er tilføjet indstillinger til at styre API'en "Topics & Interest Group", som fremmes i forbindelse med Privacy Sandbox-initiativet og giver mulighed for at definere brugerens interessekategorier og bruge dem i stedet for sporings-Cookies til at identificere grupper af brugere med lignende interesser uden at identificere enkeltbrugere. Derudover er der tilføjet engangs-informationsvinduer, der forklarer brugeren teknologiens essens og tilbyder at aktivere dens support i indstillingerne.
- Grænseværdierne for begrænsning af indlejrede kald til setTimeout- og setInterval-timere, der er startet med et interval på under 4 ms ("setTimeout(…, <4ms)"), er blevet hævet. Den samlede grænse på sådanne kald er øget fra 5 til 100, hvilket muliggør en mere aggressiv indskrænkning af enkeltstående kald, samtidig med at det forhindrer misbrug, der kan påvirke browserens ydeevne.
- Sendelse af en anmodning om bekræftelse af CORS (Cross-Origin Resource Sharing) legitimationsoplysninger til hovedwebsitet er blevet aktiveret med headeren "Access-Control-Request-Private-Network: true", når der anmodes fra en side til en underressource i det interne netværk (192.168.x.x, 10.x.x.x, 172.16-31.x.x) eller til localhost (127.x.x.x). Når operationen bekræftes som svar på denne anmodning, skal serveren returnere headeren "Access-Control-Allow-Private-Network: true". I version 104 af Chrome påvirker resultatet af bekræftelsen ikke behandlingen af anmodningen — i tilfælde af, at bekræftelsen ikke findes, vises en advarsel i webkonsollen, men selve anmodningen til underressourcen blokeres ikke. Aktivering af blokeringen ved mangel på bekræftelse server forventes ikke før i udgivelsen af Chrome 107. For at aktivere blokeringen i tidligere versioner kan indstillingen "chrome://flags/#private-network-access-respect-preflight-results" aktiveres.
Bekræftelse af beføjelser serveren Indført for at styrke beskyttelsen mod angreb relateret til adgang til ressourcer i det lokale netværk eller på brugerens computer (localhost) fra scripts, der indlæses ved åbning af en hjemmeside. Sådanne anmodninger udnyttes af angribere til at udføre CSRF-angreb på routere, adgangspunkter, printere, virksomheders webgrænseflader og andre enheder og tjenester, der kun modtager anmodninger fra det lokale netværk. For at beskytte mod sådanne angreb vil browseren ved adgang til enhver subressource i det private netværk sende en eksplicit anmodning om tilladelse til at indlæse disse subressourcer.
- Der er tilføjet en Region Capture-mekanisme, der muliggør beskæring af overskydende indhold fra videoen, der genereres baseret på skærmoptagelse. For eksempel kan webapplikationen organisere videooverførsel med indhold fra fanen ved hjælp af API getDisplayMedia, mens Region Capture gør det muligt at klippe dele af indholdet, der inkluderer kontrolenheder til videokonferencer.
- Der er tilføjet støtte til den nye syntaks for medieforespørgsler defineret i Media Queries Level 4-specifikationen, der fastlægger minimums- og maksimumsstørrelse på det synlige område (viewport). Den nye syntaks muliggør brug af almindelige matematiske sammenligningsoperatører og logiske operatorer som "not", "or" og "and". For eksempel, i stedet for "@media (min-width: 400px) { … }" kan der nu angives "@media (width >= 400px) { … }".
- I Origin Trials (eksperimentelle funktioner, der kræver separat aktivering) er der tilføjet flere nye API'er. 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 tilmelding og modtagelse af et særligt token, der er gyldigt i en begrænset periode for et specifikt websted.
- Der er tilføjet CSS-egenskaben "focusgroup" for at forbedre navigationen mellem elementer ved hjælp af piletasterne på tastaturet.
- I API Secure Payment Confirmation er der mulighed for, at brugeren kan fravælge opbevaringen af kreditkortoplysninger. For at vise en dialog, der giver mulighed for at fravælge opbevaring af kreditkortoplysninger, er der en flag i PaymentRequest()-konstruktøren, „showOptOut: true“.
- API Shared Element Transitions er blevet tilføjet, hvilket muliggør en glidende overgang mellem forskellige visninger af indhold i en enkelt-side webapplikation.
- Støtten til spekulative regler (Speculation rules) er blevet stabiliseret, hvilket gør det muligt for webstedets forfattere at give browseren oplysninger om de mest sandsynlige sider, som brugeren kan navigere til. Browseren bruger disse oplysninger til proaktivt at indlæse og gengive indholdet af siderne.
- Mekanismen til pakning af subressourcer i Web Bundle-formatet er blevet stabiliseret, hvilket øger effektiviteten af indlæsningen af et stort antal tilknyttede filer (CSS-stile, JavaScript, billeder, iframe). I modsætning til pakker i Webpack-formatet, har Web Bundle-formatet følgende fordele: det er ikke selve pakken, der lagres i HTTP-cachen, men dets bestanddele; kompilering og udførelse af JavaScript påbegyndes ikke, før pakken er fuldt indlæst; det tillader inkludering af ekstra ressourcer, såsom CSS og billeder, som i webpack skulle kodes som JavaScript-strenge.
- CSS-egenskaben object-view-box er blevet tilføjet, hvilket gør det muligt at bestemme den del af billedet, der skal vises i området i stedet for det angivne element, hvilket kan bruges f.eks. til at tilføje en ramme eller skygge.
- API Fullscreen Capability Delegation er blevet tilføjet, hvilket gør det muligt for et Window-objekt at overføre retten til at kalde requestFullscreen() til et andet Window-objekt.
- API Fullscreen Companion Window er blevet tilføjet, hvilket tillader visning af fuldskærmsindhold og pop op-vinduer på en anden skærm efter at have fået bekræftelse fra brugeren.
- Attributten visual-box er blevet tilføjet til CSS-egenskaben overflow-clip-margin, der definerer, hvorfra klipningen af indholdet, der overstiger områdets grænse, skal begynde (kan tage værdierne content-box, padding-box og border-box).
- Muligheden for at definere specialiserede formater for data, der overføres gennem udklipsholderen og ikke er tekst, billeder eller tekst med markup, er blevet tilføjet i API Async Clipboard.
- WebGL tilbyder understøttelse af specifikationen af farverum for tegnebordsbuffer og konvertering ved import fra tekstur.
- Understøttelsen af platforme OS X 10.11 og macOS 10.12 er blevet ophævet.
- Understøttelsen af U2F API (Cryptotoken), som tidligere var blevet erklæret forældet og deaktiveret som standard, er blevet ophævet. U2F API er blevet erstattet af Web Authentication API.
- Der er lavet forbedringer i værktøjer til webudviklere. I debuggerværktøjet er der tilføjet mulighed for at genstarte koden fra begyndelsen af funktionen, efter en breakpoint-trigger. Der er tilføjet understøttelse til udvikling af udvidelser til Recorder-panelet. Yderligere er der tilføjet visualisering af mærker i ydeevneanalysen, som sættes i webapplikationen via performance.measure() metoden. Anbefalingerne ved automatisk udfyldning af JavaScript-objektegenskaber er blevet forbedret. Der gives nu en forhåndsvisning af værdier i CSS-variabler, der ikke er farver.

Udover nyhederne og fejlfikserne er 27 sårbarheder blevet rettet i den nye version. Mange af sårbarhederne er blevet identificeret ved automatiserede tests via AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer og AFL. Der er ikke identificeret kritiske problemer, der kan omgå alle browserbeskyttelseslag og udføre kode i systemet uden for sandbox-miljøet. I forbindelse med belønningsprogrammet for opdagelse af sårbarheder har Google udbetalt 22 præmier til en totalværdi af 84.000 amerikanske dollars (én præmie på $15.000, én præmie på $10.000, én præmie på $8.000, én præmie på $7.000, fire præmier på $5.000, én præmie på $4.000, tre præmier på $3.000, fire præmier på $2.000 og tre præmier på $1.000). Størrelsen på én præmie er endnu ikke fastlagt.
Kilde: opennet.ru

