Skip to main content

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:

  1. 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.
  2. 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.
  3. Tredjeparts-cookies af enhver art kræver næsten altid udtrykkeligt forudgående samtykke. Der er meget få legitime undtagelser.
  4. 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