Webbrowser
Også kendt som: browser
Programmet, man bruger til at besøge websteder - det henter sider fra servere og gør dem til noget, man kan læse og klikke på.
Kladde - dette opslag er endnu ikke gennemgået.
Formelt
Et klientprogram, der henter ressourcer over HTTP eller HTTPS, tegner de modtagne sider på skærmen, kører den kode, de indeholder, i et lukket rum og gemmer cookies og andre data adskilt for hvert websted.
Forklaret enkelt
Som et fjernsyn til nettet - programmerne laves og sendes et andet sted fra, og apparatet stiller bare ind og viser dem for dig.
I praksis
En økonomimedarbejder i en kommune åbner økonomisystemet, netbanken og en nyhedsside i tre faner i samme browser, og hvert websted ser kun sine egne data.
Hvorfor det betyder noget
For de fleste er browseren hoveddøren til arbejde, økonomi og privatliv, så en forældet browser eller en skadelig udvidelse sætter det hele på spil.
Teknisk uddybning
Den første browser, WorldWideWeb, blev skrevet af Tim Berners-Lee i 1990; NCSA Mosaic (1993) bragte billeder i teksten og massegennembrud. I dag er der tre motorlinjer tilbage: Blink med JavaScript-motoren V8 (Chromium og dermed Chrome, Edge, Opera, Brave og andre; forket fra WebKit i 2013), Gecko med SpiderMonkey (Firefox) og WebKit med JavaScriptCore (Safari og på iOS historisk alle browsere). Koncentrationen af motorer har sikkerhedsbetydning: en fejl i Blink eller V8 rammer det meste af desktopmarkedet på én gang.
Moderne browsere er systemer af flere processer. En privilegeret browserproces håndterer brugerflade, lager og netværk (i Chromium en separat network service), mens webindhold kører i renderer-processer, der er indespærret i en sandbox i styresystemet (seccomp-bpf og namespaces på Linux, begrænsede tokens og job objects på Windows), og GPU-arbejde kører i sin egen proces. Siden Chrome 67 (2018) placerer site isolation forskellige sites i forskellige renderer-processer, så en kompromitteret renderer eller en sidekanal af Spectre-typen ikke kan læse et andet sites data. Fuld fjernkompromittering kræver derfor som regel en kæde: en fejl i rendereren, meget ofte type confusion eller use-after-free i den JIT-kompilerende JavaScript-motor, plus et separat udbrud fra sandboxen. Korte udgivelsescyklusser (Chrome hver fjerde uge, Firefox tilsvarende) og automatisk opdatering i baggrunden skal mindske vinduet mellem patch og udnyttelse.
Indlæsning af en side følger en veldefineret kæde: DNS-opslag, TCP- eller QUIC-forbindelse, TLS-handshake med validering af certifikatkæden og, i Chrome og Safari, håndhævelse af Certificate Transparency, derefter HTTP-udvekslingen; HTML-parseren bygger DOM'en, CSS bliver til CSSOM, og stilberegning, layout, paint og compositing giver pixels. Scripts kører på én event loop pr. agent, som defineret i HTML-standarden, og scripts, der blokerer parseren, forsinker renderingen, medmindre de er markeret async eller defer.
Browsere håndhæver det meste af nettets sikkerhedsmodel på brugerens vegne: same-origin policy og CORS, cookiers afgrænsning og SameSite, partitionering af lager efter topniveau-site, blokering af blandet indhold, HSTS inklusive en preload-liste bygget ind i programmet, CSP og tilladelsesdialoger for kamera, placering og lignende. Udvidelser er det markante svage punkt, fordi de kan have brede værtsrettigheder på tværs af alle sites; Chromiums Manifest V3 indsnævrede nogle muligheder, men ondsindede eller overtagne udvidelser er stadig en vej til tyveri af sessioner. I organisationer styres browsere via politikker (Group Policy eller MDM) med godkendte lister over udvidelser, tvungne opdateringer og begrænset lagring af adgangskoder. En browser er en specialiseret HTTP-klient, forskellig fra den webapplikation, den viser, og fra indlejrede web views i native apps, som ofte mangler den fulde browsers opdateringstakt og beskyttelse.
Hvad du bør lære først
Alt det, dette bygger på - grundlaget først.
Relationer
- En slags
- Klient
- Forudsætter
- HTTPInternettet
- Bruges sammen med
- URLWebapplikation
Kilder og videre læsning
Officiel dokumentation
- MDN Web Docs - How browsers work · Mozilla
Lærebøger
- Kurose & Ross, Computer Networking: A Top-Down Approach
Hvor dataene kommer fra
Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.
Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON
Nævnt i
Test dig selv
Indlæser…