Cookie
Også kendt som: HTTP-cookie, browsercookie
En lille tekstbid, som et websted beder browseren gemme og sende med tilbage ved hvert besøg, så stedet kan genkende den.
Kladde - dette opslag er endnu ikke gennemgået.
Formelt
Et navn og en værdi, som en server sætter i et HTTP-svar; browseren gemmer det for webstedet og lægger det på senere forespørgsler til samme sted, indtil det udløber, med markeringer, der begrænser, hvor og hvordan det må sendes.
Forklaret enkelt
Som garderobesedlen i teatret - du rækker den frem hver gang, og personalet ved, hvilken frakke der er din, uden at spørge om dit navn.
I praksis
Når en kunde logger ind i en dansk webshop, sætter butikken en cookie med et sessionsnummer, så kurven og login følger med, mens hun går fra side til side.
Hvorfor det betyder noget
Den, der har en login-cookie, behandles som dens ejer, så den skal skjules for kode på siden og aldrig sendes over ren HTTP; cookies, der sporer personer, kræver samtykke efter cookiereglerne.
Teknisk uddybning
Cookies blev indført af Netscape i 1994 og er i dag specificeret i RFC 6265 (april 2011), som beskrev browsernes faktiske adfærd, efter at de tidligere RFC 2109 og RFC 2965 slog fejl i praksis; IETF's revision, kendt som RFC 6265bis, fastlægger senere tilføjelser som SameSite og cookie-præfikser. En server sender én Set-Cookie-header pr. cookie i svaret, og browseren sender de matchende cookies tilbage som navn=værdi-par i én Cookie-header i forespørgslen. Attributter styrer rækkevidde og levetid: Expires eller Max-Age (Max-Age vinder, hvis begge er til stede; uden nogen af dem er det en sessionscookie), Domain (udeladt betyder kun den præcise vært; angivet betyder domænet og alle underdomæner, og et offentligt suffiks afvises), Path (en bekvemmelighed, ikke en sikkerhedsgrænse), Secure, HttpOnly og SameSite med værdierne Strict, Lax eller None, hvor None kræver Secure. RFC 6265 afsnit 6.1 beder browsere understøtte mindst 4096 byte pr. cookie, 50 cookies pr. domæne og 3000 i alt; Chrome begrænser levetiden til 400 dage.
Cookiernes afgrænsning er ældre end og forskellig fra same-origin policy: cookies er knyttet til vært eller domæne og sti, historisk ikke til skema eller port, så http- og https-udgaven af en vært og forskellige porte har traditionelt delt cookies. Et kompromitteret eller angriberstyret underdomæne kan derfor sætte cookies for sit overordnede domæne (cookie tossing) og fastlåse et offers session. Præfikserne __Secure- (skal have Secure) og __Host- (Secure, Path=/ og ingen Domain, altså kun værten) lader serveren opdage den slags injektion. SameSite arbejder med sitet (skema plus registrerbart domæne fra Public Suffix List), ikke med oprindelsen; Chrome gjorde Lax til standard for cookies uden attributten i 2020.
En sessionscookie er et bearer token, så alle veje til tyveri tæller: adgang fra script via XSS (blokeres af HttpOnly), aflytning på netværket (blokeres af Secure sammen med HSTS) og i stigende grad infostealer-malware, der kopierer browserens cookielager og genbruger sessionen et andet sted, helt uden om MFA. Browserproducenterne svarer igen med tiltag som Chromes app-bound kryptering af cookielageret og enhedsbundne sessionsloginoplysninger. Fordi cookies sendes med automatisk, muliggør de også CSRF, som SameSite mindsker, men ikke fjerner helt; sessions-id'et skal desuden fornyes ved login for at forhindre session fixation.
Juridisk kræver e-databeskyttelsesdirektivet 2002/58/EF art. 5, stk. 3, som ændret i 2009, samtykke, før oplysninger gemmes eller læses på brugerens udstyr, medmindre det er strengt nødvendigt for en tjeneste, brugeren har bedt om; i Danmark er det gennemført i cookiebekendtgørelsen. Samtykket skal opfylde databeskyttelsesforordningens krav, og EU-Domstolen fastslog i Planet49 (C-673/17, 2019), at forudafkrydsede felter ikke er gyldigt samtykke. Safari og Firefox blokerer eller partitionerer tredjepartscookies som standard, attributten Partitioned (CHIPS) giver indlejrede tjenester en cookiebeholder pr. site, og Google har opgivet planen om at udfase tredjepartscookies i Chrome.
Hvad du bør lære først
Alt det, dette bygger på - grundlaget først.
Relationer
- Forudsætter
- HTTPWebbrowser
- Åbner for
- Cross-site request forgery (CSRF)
- Bruges sammen med
- SessionWebapplikation
Kilder og videre læsning
Standarder og officielle tekster
Officiel dokumentation
- MDN Web Docs - Using HTTP cookies · Mozilla
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…