Typer af cookies: En komplet teknisk guide
Ikke alle cookies er ens. Cookietypen afgør, hvor længe den varer, hvem der kan læse den, hvor sikkert den transmitteres, og — helt afgørende — om den kræver brugerens samtykke. At forstå disse forskelle er afgørende for både compliance og implementering.
Session-cookies vs. permanente cookies
Den mest grundlæggende forskel er, hvor længe en cookie varer.
Session-cookies
En session-cookie eksisterer kun, så længe browsersessionen varer. Den har ingen Expires- eller Max-Age-attribut. Når brugeren lukker sin browser, slettes cookien.
Set-Cookie: cart_id=xyz789; Path=/; Secure; HttpOnly
Session-cookies bruges typisk til:
- At bevare login-status under et besøg
- Indhold i indkøbskurven
- CSRF-beskyttelsestokens
- Data fra flertrinsformularer
Fordi session-cookies ikke er permanente, er de generelt mindre indgribende set fra et privatlivsperspektiv. De kræver dog stadig samtykke, hvis de ikke er strengt nødvendige for den tjeneste, brugeren har anmodet om.
Permanente cookies
En permanent cookie har en eksplicit udløbsdato. Den overlever genstart af browseren og forbliver på brugerens enhed, indtil den udløber eller slettes manuelt.
Set-Cookie: preferences_lang=en; Path=/; Max-Age=31536000; Secure
Denne cookie varer i et år (31.536.000 sekunder). Almindelige anvendelser omfatter:
- Husk mig-funktionalitet ved login
- Sprog- og temaindstillinger
- Analytics-identifikatorer (Google Analytics-cookies varer i op til 2 år)
- Sporing til annoncering (nogle annonce-cookies varer i 13 måneder eller længere)
Permanente cookies er underlagt større bevågenhed under privatlivslovgivningen. CNIL (Frankrigs databeskyttelsesmyndighed) har anbefalet en maksimal cookielevetid på 13 måneder, og samtykke skal ligeledes fornyes mindst hver 13. måned.
Førsteparts- vs. tredjeparts-cookies
Denne forskel er central i privatlivsdebatten og påvirker direkte kravene til samtykke.
Førsteparts-cookies
En førsteparts-cookie sættes af det domæne, brugeren faktisk besøger. Hvis du besøger example.com, er enhver cookie sat af example.com en førsteparts-cookie.
Førsteparts-cookies bruges til websitets kernefunktionalitet: sessioner, indstillinger, analytics, som websiteejeren selv kører. De kan kun læses af det domæne, der satte dem.
Eksempel: Du besøger shop.example.com. Serveren sætter en cookie ved navn session_id. Denne cookie sendes kun til shop.example.com og dens subdomæner. Intet andet website kan tilgå den.
Tredjeparts-cookies
En tredjeparts-cookie sættes af et andet domæne end det, brugeren besøger. Når example.com indlæser et annonceringsscript fra ads.tracker.com, og dette script sætter en cookie under domænet tracker.com, er det en tredjeparts-cookie.
Sådan fungerer sporing på tværs af websites. Cookien fra tracker.com sendes med hver anmodning til tracker.com, uanset hvilket website der udløste anmodningen. Hvis scripts fra tracker.com er indlejret på 10.000 websites, kan de observere den samme bruger på tværs af alle 10.000 sites.
Tredjeparts-cookies er det primære mål for både regulatorisk håndhævelse og restriktioner på browserniveau:
- Safari har blokeret tredjeparts-cookies som standard siden 2020 (ITP)
- Firefox blokerer kendte tredjeparts-trackere som standard (ETP)
- Chrome er ved at udfase tredjeparts-cookies med sit Privacy Sandbox-initiativ
- Regulatoriske håndhævelsessager retter sig overvældende mod tredjeparts-sporingscookies
Secure-cookies
En cookie med attributten Secure sendes kun over HTTPS-forbindelser. Den vil aldrig blive transmitteret over ukrypteret HTTP.
Set-Cookie: auth_token=secret123; Secure
Dette forhindrer en man-in-the-middle-angriber i at opsnappe cookien på en usikker forbindelse. Enhver cookie, der indeholder følsomme oplysninger — session-identifikatorer, autentificeringstokens, personoplysninger — bør altid være markeret Secure.
Set fra et compliance-perspektiv kan det at undlade at bruge Secure-flaget på følsomme cookies betragtes som manglende implementering af passende tekniske foranstaltninger efter GDPR artikel 32 (behandlingssikkerhed).
HttpOnly-cookies
En cookie med attributten HttpOnly kan ikke tilgås af JavaScript via document.cookie. Den sendes kun med HTTP-anmodninger til serveren.
Set-Cookie: session_id=abc123; HttpOnly
Dette er en kritisk sikkerhedsforanstaltning. Cross-site scripting-angreb (XSS) forsøger ofte at stjæle cookies ved at injicere JavaScript, der læser document.cookie. HttpOnly-flaget forhindrer denne angrebsvektor fuldstændigt.
Session-cookies og autentificeringscookies bør næsten altid være HttpOnly. Cookies, der skal læses af JavaScript på klientsiden (såsom indstillingscookies, der påvirker brugergrænsefladen), kan ikke være HttpOnly.
SameSite-cookies
Attributten SameSite styrer, om en cookie sendes med anmodninger på tværs af sites. Den blev indført for at mindske cross-site request forgery-angreb (CSRF) og for at give sites mere kontrol over cookie-adfærd på tværs af sites.
SameSite=Strict
Cookien sendes kun med anmodninger, der stammer fra samme site. Hvis en bruger klikker på et link på other.com, der fører til your-site.com, vil cookien ikke blive sendt med den indledende anmodning.
Dette er den mest sikre indstilling, men den kan ødelægge legitim funktionalitet. Hvis en bruger for eksempel klikker på et link til dit site fra en e-mail, vil deres session-cookie ikke blive sendt, og de vil fremstå som logget ud.
SameSite=Lax
Cookien sendes med navigation på topniveau (klik på et link), men ikke med underanmodninger på tværs af sites (indlæsning af billeder, frames eller AJAX-anmodninger fra et andet site). Dette er standarden i moderne browsere, hvis ingen SameSite-attribut er angivet.
Lax giver en rimelig balance mellem sikkerhed og brugervenlighed. Den forhindrer tredjepartssites i at udløse autentificerede handlinger på dit site, samtidig med at almindelig linknavigation stadig fungerer.
SameSite=None
Cookien sendes med alle anmodninger, inklusive anmodninger på tværs af sites. Dette er nødvendigt, for at tredjeparts-cookies kan fungere. En cookie, der sættes med SameSite=None, skal også have attributten Secure.
Set-Cookie: tracking_id=xyz; SameSite=None; Secure
Enhver cookie, der skal fungere i en kontekst på tværs af sites (indlejrede widgets, tredjeparts-autentificering, sporing på tværs af sites), skal bruge SameSite=None. Dette bliver stadig mere relevant, i takt med at browsere strammer deres standardpolitikker for cookies.
Zombie-cookies og supercookies
Disse er værd at nævne, fordi de repræsenterer forsøg på at omgå privatlivskontroller:
- Zombie-cookies er cookies, der genskaber sig selv, efter de er blevet slettet. De fungerer typisk ved at gemme den samme identifikator i flere lagermekanismer (cookies, localStorage, IndexedDB, Flash LSO'er) og bruge den, der overlever, til at genskabe de andre. Denne praksis anses bredt for vildledende og har været genstand for håndhævelsessager.
- Supercookies er sporingsmekanismer, der opererer på et niveau under almindelige cookies — såsom header-injektion på ISP-niveau (Verizons UIDH) eller HSTS-baseret fingerprinting. De er ekstremt svære for brugere at kontrollere eller slette.
Både zombie-cookies og supercookies er klart uforenelige med kravene i GDPR og ePrivacy. At bruge dem ville udgøre en overtrædelse af principperne om gennemsigtighed, lovlighed og dataminimering.
Sammenligningstabel
| Type | Levetid | Rækkevidde | Kræves samtykke typisk? | Vigtigste anvendelser |
|---|---|---|---|---|
| Session | Kun browsersession | Førstepart | Kun hvis ikke-nødvendig | Login-status, kurv, CSRF-tokens |
| Permanent (førstepart) | Dage til år | Førstepart | Som regel ja | Indstillinger, analytics, husk mig |
| Permanent (tredjepart) | Dage til år | På tværs af sites | Næsten altid ja | Annoncering, retargeting, sociale widgets |
| Secure | Varierer | Kun HTTPS | Afhænger af formål | Enhver følsom cookie |
| HttpOnly | Varierer | Kun serverside | Afhænger af formål | Session-ID'er, autentificeringstokens |
| SameSite=Strict | Varierer | Kun samme site | Afhænger af formål | CSRF-følsomme operationer |
| SameSite=Lax | Varierer | Samme site + navigation på topniveau | Afhænger af formål | Generel session-håndtering |
| SameSite=None | Varierer | Alle kontekster (kræver Secure) | Næsten altid ja | Tredjeparts-indlejringer, autentificering på tværs af sites |
Hvad dette betyder for compliance
Cookietypen påvirker direkte dine compliance-forpligtelser:
- Førsteparts-session-cookies, der er strengt nødvendige (login-sessioner, indkøbskurve, CSRF-tokens), er undtaget fra kravet om samtykke efter ePrivacy artikel 5, stk. 3.
- Førsteparts-permanente cookies til analytics, indstillinger eller funktionalitet kræver generelt samtykke — selvom nogle datatilsyn tillader begrænsede undtagelser for førsteparts-analytics under særlige betingelser.
- Tredjeparts-cookies af enhver art kræver næsten altid udtrykkeligt forudgående samtykke. Der er meget få legitime undtagelser.
- Sikkerhedsattributter (Secure, HttpOnly, SameSite) ændrer ikke kravene til samtykke, men at bruge dem viser god sikkerhedspraksis — hvilket i sig selv er et krav under GDPR.
At vide præcis, hvilke cookies dit website sætter — og hvilken type hver enkelt er — er fundamentet for ethvert compliance-program. Passiros scanner identificerer og klassificerer automatisk hver eneste cookie på dit website, inklusive tredjeparts-cookies sat af indlejrede scripts, som du måske ikke engang er klar over.
Nu hvor vi forstår typerne, lad os se på, hvordan cookies organiseres i samtykkekategorier — det klassifikationssystem, der afgør, hvordan de vises i dit cookie-banner.
Overholder din website cookiereglerne?
Scan din website gratis og find alle cookies på få minutter.
Scan dine cookies gratis