Cookie

Cookies ( engelsk  cookie , lit. - "cookie") - et lille stykke data sendt af en webserver og gemt på brugerens computer . Webklienten (normalt en webbrowser ) sender dette stykke data til webserveren som en del af en HTTP -anmodning , hver gang den forsøger at åbne en side på det tilsvarende websted . Det bruges til at gemme data på brugersiden, i praksis bruges det normalt til [1] :

Browserunderstøttelse af cookies (accept, lagring og efterfølgende overførsel af lagrede cookies til serveren) er påkrævet af mange websteder med adgangsbegrænsninger, de fleste onlinebutikker [2] . Tilpasning af design og adfærd på mange websteder til individuelle brugerpræferencer er også baseret på cookies [1] .

Cookies er nemme at opsnappe og forfalske (for eksempel for at få adgang til en konto), hvis brugeren bruger en ukrypteret forbindelse til serveren. I fare er brugere, der får adgang til internettet ved hjælp af offentlige Wi-Fi- adgangspunkter og ikke bruger mekanismer som SSL og TLS . Kryptering løser også andre problemer relateret til sikkerheden af ​​overførte data.

De fleste moderne browsere giver brugerne mulighed for at vælge, om de vil acceptere cookies eller ej, men deaktivering af dem gør nogle websteder ubrugelige. Derudover er websteder i henhold til lovene i nogle lande (for eksempel i henhold til EU-forordningen af ​​2016, se den generelle databeskyttelsesforordning ), forpligtet til at anmode om brugerens samtykke, før de sætter en cookie.

Udnævnelse

Cookies bruges af webservere til at identificere brugere og gemme data om dem.

For eksempel, hvis webstedet er logget ind ved hjælp af cookies, så, efter at brugeren har indtastet sine data på login-siden, tillader cookies serveren at huske, at brugeren allerede er blevet identificeret og har tilladelse til at få adgang til de relevante tjenester og operationer [1 ] .

Mange websteder bruger også cookies til at gemme brugerpræferencer. Disse indstillinger kan bruges til personalisering, som inkluderer valg af udseende og funktionalitet. For eksempel giver Wikipedia autoriserede brugere mulighed for at vælge webstedets design . Googles søgemaskine giver brugere (inklusive dem, der ikke er registreret med den) mulighed for at vælge antallet af søgeresultater, der vises på én side [3] .

Cookies bruges også til at spore brugeraktivitet på siden. Dette sker som udgangspunkt med det formål at indsamle statistik, og annoncevirksomheder danner på baggrund af sådanne statistikker anonyme brugerprofiler for mere præcis målretning af annoncering [4] .

Koncept

Teknisk set er cookies stykker data, som i første omgang sendes af en webserver til en browser. Ved hvert efterfølgende besøg på siden sender browseren dem tilbage til serveren. Uden en cookie er hver websidevisning en isoleret handling, der ikke er relateret til at gennemse andre sider på det samme websted, med den samme cookie kan du identificere forholdet mellem at se forskellige sider. Ud over at blive sendt af en webserver, kan cookies oprettes ved hjælp af scriptsprog såsom JavaScript , hvis de er understøttet og aktiveret i browseren.

Specifikationer [5] [6] angiver de minimumsbeløb, som browsere skal levere til lagring af cookies. Således skal browseren gemme mindst 300 cookies på hver 4096 bytes og mindst 20 cookies pr. server eller domæne .

Populære browsere har et tilsvarende maksimum af lagrede cookies for hvert domæne:

I praksis kan nogle browsere pålægge mere restriktive begrænsninger. For eksempel leverer Internet Explorer 4096 bytes til alle cookies i det samme domæne.

Cookienavne skiller ikke mellem store og små bogstaver i henhold til afsnit 3.1 i RFC 2965 .

Cookies kan indstille datoen for deres sletning, i hvilket tilfælde de automatisk slettes af browseren inden for den angivne periode. Hvis der ikke er angivet nogen slettedato, slettes cookies, så snart brugeren lukker browseren. Ved at angive en udløbsdato kan cookies gemmes i mere end én session, og sådanne cookies kaldes persistente. For eksempel kan en netbutik bruge persistente cookies til at gemme koderne for varer, som brugeren har lagt i indkøbskurven – og selvom brugeren lukker browseren uden at foretage et køb, vil de næste gang de logger ind, ikke have at genopbygge vognen.

Cookie-lagring kan også være begrænset afhængigt af webserveren, domænet eller underdomænet, hvor de blev oprettet.

Historie

Ifølge en version kommer udtrykket "cookies" (cookies) fra " magiske cookies " [7]  - et sæt data, som programmet modtager og derefter sender tilbage uændret. I juni 1994 kom Lou Montulli på ideen om at bruge dem i en webforbindelse [8] . På det tidspunkt var han ansat hos Netscape Communications , som var ved at udvikle en bestilt e-handelspakke. Cookies er blevet en løsning på problemet med pålidelig implementering af den virtuelle indkøbskurv.

Med hjælp fra John Giannandrea skrev Montulli den indledende cookiespecifikation samme år. Mosaic Netscape 0.9beta, udgivet 13. oktober 1994 [9] [10] , understøttede allerede cookies. Cookies blev først brugt uden for laboratoriet på Netscape-webstedet og afgjorde, om en bruger tidligere havde besøgt webstedet. Montulli ansøgte om et patent i 1995 og modtog det i 1998. Internet Explorer begyndte at understøtte cookies med version 2, udgivet i oktober 1995 [11] .

Selvom nogle mennesker var klar over eksistensen af ​​cookies allerede i første kvartal af 1995 [12] blev den brede offentlighed først opmærksom på dem efter en artikel i Financial Times den 12. februar 1996 . Samme år blev cookies i fokus for mediernes opmærksomhed, især på grund af den potentielle trussel mod privatlivets fred . Cookies blev overvejet af US Federal Trade Commission i to høringer i 1996 og 1997.

Udviklingen af ​​cookie-specifikationer stoppede ikke der. Især begyndte de første drøftelser af en formel specifikation i april 1995. Der er nedsat en ad hoc-arbejdsgruppe inden for IETF . Netscape-specifikationen blev valgt som udgangspunkt. I februar 1996 identificerede en arbejdsgruppe tredjepartscookies som en alvorlig privatlivstrussel. Den resulterende specifikation blev udgivet som RFC 2109 i februar 1997 . Den sagde, at tredjepartscookies enten skulle blokeres eller i det mindste ikke fungere som standard.

På det tidspunkt brugte reklamevirksomheder allerede tredjepartscookies med may og main, og RFC 2109 -anbefalinger blev ikke understøttet af hverken Netscape-browsere eller Internet Explorer. Senere, i oktober 2000 , blev RFC 2109 erstattet af den nye RFC 2965- specifikation .

Cookie typer

Session cookies

Sessionscookies , også kendt som midlertidige cookies , findes kun i midlertidig hukommelse, mens brugeren er på en side på et websted. Browsere sletter normalt sessionscookies, efter at brugeren lukker browservinduet [13] . I modsætning til andre typer cookies har session cookies ikke en udløbsdato og forstås derfor af browsere som session cookies.

Vedvarende cookies

I stedet for at blive slettet, når browseren er lukket, som sessionscookies gør, slettes persistente cookies på en bestemt dato eller efter et bestemt tidsrum. Det betyder, at information om cookien vil blive sendt til serveren, hver gang brugeren besøger den hjemmeside, som cookien tilhører. Af denne grund omtales vedvarende cookies nogle gange som sporingscookies , fordi de kan bruges af annoncører til at registrere brugerpræferencer over en længere periode. De kan dog også bruges til "fredelige" formål, for eksempel for at undgå genindtastning af data, hver gang du besøger siden.

Tredjepartscookies

Typisk er domæneattributten for en cookie den samme som det domæne, der vises i adresselinjen i en webbrowser. Dette kaldes den første cookie. Tredjepartscookien tilhører dog et andet domæne end det, der er angivet i adresselinjen. Denne type cookie vises normalt, når websider indeholder indhold fra eksterne websteder, såsom bannerannoncer. Dette åbner muligheder for at spore en brugers browserhistorik og bruges ofte af annoncører til at levere relevante annoncer til hver bruger.

Antag som et eksempel, at en bruger besøger www.example.org. Denne hjemmeside indeholder annoncer fra ad.foxytracking.com, som, når den er indlæst, sætter en cookie, der tilhører annoncedomænet (ad.foxytracking.com). Brugeren besøger derefter et andet websted www.foo.com, som også indeholder annoncer fra ad.foxytracking.com og sætter en cookie, der tilhører det pågældende domæne (ad.foxytracking.com). Når alt kommer til alt, vil begge disse cookies blive sendt til annoncøren, når deres annonce er indlæst eller deres hjemmeside besøges. Annoncøren kan derefter bruge disse cookies til at opbygge brugerens browserhistorik på tværs af alle websteder, der hoster den pågældende annoncørs annonce.

Fra 2014 satte nogle websteder læsecookies på over 100 tredjepartsdomæner [14] . I gennemsnit blev der sat 10 cookies pr. websted, hvor det maksimale antal cookies (for både tredjeparter og tredjeparter) oversteg 800 [15] . De fleste moderne webbrowsere indeholder privatlivsindstillinger, der kan blokere tredjepartscookies.

Supercookie

En supercookie er en cookie med en topdomæneoprindelse (f.eks . .ru ) eller et offentligt suffiks (f.eks. .co.uk). Almindelige cookies er på den anden side afledt af et specifikt domænenavn, såsom example.com.

Supercookies kan være et potentielt sikkerhedsproblem og bliver derfor ofte blokeret af webbrowsere. Hvis en browser fjerner blokeringen af ​​et ondsindet websted, kan en angriber indstille en super-cookie og potentielt forstyrre eller efterligne legitime brugeranmodninger til et andet websted, der bruger det samme topdomæne eller offentlige suffiks som det ondsindede websted. For eksempel kan en supercookie med origin .com skadeligt påvirke en anmodning til example.com, selvom cookien ikke er oprettet fra example.com. Dette kan bruges til at falske login eller ændre brugeroplysninger.

Den offentlige liste over suffikser [16] hjælper med at reducere risikoen for, at supercookies udgør. Den offentlige suffiksliste er et initiativ på tværs af leverandører, der har til formål at give en nøjagtig og opdateret liste over domænenavnssuffikser. Ældre versioner af browsere har muligvis ikke en opdateret liste og er derfor sårbare over for supercookies fra visse domæner.

Udtrykket "supercookie" (super-cookie) bruges nogle gange til at spore teknologier, der ikke bruger HTTP-cookies. I august 2011 blev to sådanne "supercookie"-mekanismer opdaget på Microsoft-websteder: cookiesynkronisering, som producerer en MUID (unique machine identifier) ​​cookie, og en ETag-cookie [17] . På grund af medieopmærksomhed deaktiverede Microsoft senere denne kode [18] .

Zombie cookies

Da cookies meget nemt kan fjernes fra browseren, leder programmører efter måder at identificere brugere på, selv efter fuldstændig at have ryddet browserens historie. En sådan løsning er zombie-cookies (eller evercookie eller persistente cookies ) - ikke-slettelige eller svære at slette cookies, der kan gendannes i browseren ved hjælp af JavaScript. Dette er muligt, fordi webstedet samtidigt bruger alle tilgængelige browserlager til at gemme cookies ( HTTP ETag, Session Storage, Local Storage, Indexed DB ), inklusive applikationslagre såsom Flash Player ( Local Shared Objects ), Microsoft Silverlight ( Isolated Storage ) og Java ( Java persistence API ). Når programmet registrerer fraværet af en cookie i browseren, hvis information findes i andre butikker, gendanner det straks den til sin plads og identificerer derved brugeren til webstedet.

Cookie muligheder

RFC 6265 giver specifikke instruktioner om, hvordan hver af cookieparametrene skal fortolkes:

I 2015 blev et dokument godkendt til opdatering af RFC 6265- specifikationen , som tilføjede et sæt navnebegrænsninger for cookies. For at give yderligere sikkerhed har eksperter foreslået specielle navnepræfikser __Secure-og __Host-angiver over for browseren behovet for at overholde særlige krav ved modtagelse af cookies fra serveren [19] .

Hvis mindst et af de anførte krav overtrædes, vil installationen af ​​en cookie i browseren blive afvist. Præfiksunderstøttelse er implementeret i Chrome 49+, Firefox 50+ og Opera 36+ [20] .

Hvis alle ovenstående muligheder er aktiveret, vil anmodningen om at sætte en cookie fra serveren se sådan ud:

Set-Cookie: __Secure-name=value; max-age=31536000; domain=example.com; path=/; secure; httponly; samesite=lax

Sådan fungerer cookies

Som enhver anden HTTP-header skal der sendes en cookie til browseren , før andre data sendes, inklusive tomme strenge og blanktegn (dette er en begrænsning af HTTP-protokollen).

Indstilling af en cookie

Når du anmoder om en side, sender browseren en kort tekst med en HTTP-anmodning til webserveren. For at få adgang til siden http://www.example.org/index.html sender browseren f.eks. følgende anmodning til www.example.org-serveren:1

GET /index.html HTTP/1.1
Host: www.example.org
5

browser server

Serveren svarer ved at sende den anmodede side sammen med en tekst, der indeholder et HTTP-svar. Den kan indeholde en instruktion til browseren om at gemme cookien:

HTTP/1.1 200 OK
Indholdstype: text/html
Set-Cookie: navn=værdi
 
(sideindhold)

browser server

Strengen Set-cookiesendes kun, når serveren ønsker, at browseren skal gemme cookien. I dette tilfælde, hvis cookies understøttes af browseren, og deres accept er aktiveret, husker browseren strengen name=value(navn = værdi) og sender den tilbage til serveren med hver efterfølgende anmodning. Når du f.eks. anmoder om den følgende side http://www.example.org/spec.html, sender browseren følgende anmodning til www.examle.org-serveren:

GET /spec.html HTTP/1.1
Host: www.example.org
Cookie: navn=værdi
Accepter: */*
 

browser server

Denne anmodning adskiller sig fra den første anmodning ved, at den indeholder den streng, som serveren sendte til browseren tidligere. Således vil serveren vide, at denne anmodning er relateret til den forrige. Serveren svarer ved at sende den anmodede side og eventuelt tilføje nye cookies.

Cookieværdien kan ændres af serveren ved at sende nye linjer Set-Cookie: name=new_value. Browseren erstatter derefter den gamle cookie med det samme navn med den nye streng.

Cookies kan også indstilles af programmer på sprog som JavaScript, indlejret i teksten på sider eller lignende scripts, der kører i browseren. JavaScript bruger dokumentobjektets cookie-egenskab til at gøre dette document.cookie. For eksempel document.cookie="temperature=20"vil den skabe en cookie kaldet "temperatur" med en værdi på 20 [21] .

Godkendelse

Cookies kan bruges af serveren til at identificere tidligere autentificerede brugere. Det sker sådan her [22] :

  1. Brugeren indtaster et brugernavn og en adgangskode i tekstfelterne på login-siden og sender dem til serveren.
  2. Serveren modtager brugernavnet og adgangskoden, tjekker dem, og hvis de er korrekte, sender den en vellykket login-side, der vedhæfter en cookie med et eller andet sessions-id. Denne cookie kan ikke kun være gyldig for den aktuelle browsersession, men kan også indstilles til at blive gemt i lang tid.
  3. Hver gang en bruger anmoder om en side fra serveren, sender browseren automatisk en sessions-id-cookie til serveren. Serveren kontrollerer identifikatoren mod sin database med identifikatorer og, hvis der er en sådan identifikator i databasen, "genkender" brugeren.

Denne metode er meget udbredt på mange websteder såsom Yahoo! , på Wikipedia og på Facebook .

Mange browsere (især Opera, FireFox) kan styre adfærden på websteder ved at redigere cookieegenskaber. Ved at ændre udløbsdatoen for ikke-vedvarende (sessions)cookies, kan du for eksempel få en formelt ubegrænset session efter autorisation på et websted. Muligheden for at redigere cookies ved hjælp af standardværktøjer er ikke tilgængelig i Internet Explorer. Men ved at bruge andre mekanismer, såsom JavaScript, kan brugeren ændre cookien. Desuden er det muligt at erstatte session cookies med permanente (med en udløbsdato).

Serversoftwaren kan dog spore sådanne forsøg. For at gøre dette udsteder serveren en cookie i en vis periode og skriver cookiens udløbsdato på sig selv eller i krypteret form i selve cookies, hver gang brugeren tilgår serveren. Hvis den cookie, der sendes af browseren, har en anden udløbsdato end den, der er gemt på serveren eller indeholdt i cookien, så bliver der gjort et forsøg på at forfalske cookiens udløbsdato. Serveren kan svare, for eksempel ved at bede brugeren om at genautorisere.

Browserindstillinger

De fleste moderne browsere understøtter cookies [23] , og som regel kan brugeren vælge, om cookies skal bruges eller ej. De mest almindelige browserindstillinger er [24] :

  1. Deaktiver cookies fuldstændigt.
  2. Sletning af cookies, når browseren er lukket.
  3. At skelne tredjepartscookies fra en tredjepart og behandle dem i overensstemmelse hermed (for eksempel at begrænse eller blokere dem).
  4. Cookiebehandling baseret på "hvide" og/eller "sorte" lister opdateret af brugeren eller browserproducenten. Cookies fra "den sorte liste" er blokeret.
  5. Forbud mod cookies fra visse domæner (en slags "sort liste").
  6. Indstilling af rimelige udløbsdatoer for cookies.

De fleste JavaScript-aktiverede browsere giver brugeren mulighed for at se aktive cookies på et givet websted ved at skrive javascript:alert(document.cookie)eller javascript:prompt(document.cookie)i browserens adresselinje [24] . Nogle browsere indeholder en cookie-manager, der giver brugeren mulighed for selektivt at se og slette cookies, der er gemt i browseren.

Privatliv og tredjepartscookies

Der er en misforståelse om, at cookies er programmer og uafhængigt kan spore brugerhandlinger, selvom disse kun er stykker data, der er gemt på computeren af ​​browseren [25] . Ifølge en undersøgelse foretaget af det amerikanske firma Insight Express i 2005 er 25 % af de adspurgte sikre på dette [26] .

Cookies har en betydelig indvirkning på internetbrugernes anonymitet og privatlivets fred for brugeroplysninger. Selvom cookies kun sendes til servere på det domæne, de er beregnet til, kan en webside indlæse billeder eller andre komponenter fra andre domæner. Cookies modtaget under indlæsningen af ​​disse komponenter fra andre domæner kaldes "tredjepart" [27] .

Annoncevirksomheder bruger tredjepartscookies til at spore brugerens bevægelser på webstederne. Især kan et reklamefirma spore brugere på alle websteder, hvor deres reklamebannere er installeret . At kende de sider, brugeren besøger, giver dig mulighed for at ændre reklameretningen afhængigt af brugerens præferencer.

Brugerprofilering ses som en potentiel privatlivsrisiko, selv når den spores på tværs af et enkelt domæne, men især når den spores på tværs af flere domæner ved hjælp af tredjepartscookies. Af denne grund er cookies reguleret ved lov i nogle lande.

Den amerikanske regering vedtog strenge cookielove i 2000, efter at det viste sig, at det amerikanske lægemiddelagentur brugte cookies til at spore brugere, der så deres anti-narkotikaannoncer online. I 2002 opdagede Daniel Brandt, at CIA satte persistente cookies på computere med en opbevaringsperiode på op til 2010. Da CIA blev gjort opmærksom på den ulovlige brug af cookies, sagde agenturet, at det var utilsigtet og stoppede med at installere dem [28] . Den 25. december 2005 opdagede Brandt, at National Security Agency efterlod et par vedvarende cookies efter en softwareopdatering. Efter denne meddelelse deaktiverede agenturet straks cookies [29] .

Den Europæiske Unions direktiv 2002/58/EF om privatliv og elektronisk kommunikation [30] indeholder regler om brugen af ​​cookies. Specielt fremgår det af artikel 5, stk. 3, at lagring af data (herunder cookies) kun kan finde sted, hvis:

I 2009 ændrede direktiv 2009/136/EF [31] direktiv 2002/58/EF, som trådte i kraft i maj 2011. Ændringerne strammede kravene til indsamling af oplysninger om besøgende på webstedet. I henhold til de nye regler skal webstedsejere indhente forudgående samtykke fra besøgende til indsamling af oplysninger (herunder cookies) og rapportere om de informationsindsamlingsværktøjer, der fungerer på webstedet [32] .

I maj 2018 trådte den generelle databeskyttelsesforordning i kraft i Den Europæiske Union , og erstatter det nuværende direktiv 2002/58/EC, som gælder for alle websteder, der besøges fra EU og sidestiller de fleste cookies med andre personlige data. Det oprindelige udkast foreslog, at browserindstillinger kunne betragtes som tilstrækkelige beviser for brugerens samtykke til at sætte en cookie [33] , og ifølge den endelige version er meddelelse om indstillingen af ​​en cookie tilstrækkelig [34] .

P3P - specifikationen inkluderer muligheden for en webserver til at rapportere en krænkelse af privatlivets fred til en browser, hvilket angiver arten af ​​de oplysninger, der indsamles, og formålet med indsamlingen. Dette inkluderer brugen af ​​oplysninger opnået gennem cookies. I henhold til P3P-specifikationen kan browseren acceptere eller afvise cookies i henhold til brugerens præferencer eller spørge brugeren.

Mange browsere, inklusive Apples Safari og Microsofts Internet Explorer version 6 og 7, understøtter P3P-specifikationer, der giver dig mulighed for at bestemme, om tredjepartscookies skal tillades. Opera - browseren giver brugerne mulighed for at fravælge tredjepartscookies og oprette globale eller tilpassede sikkerhedsprofiler til webdomæner [35] . Firefox 2 fjernede denne mulighed, men den blev gendannet i version 3.

Ulemper ved cookies

Ud over privatlivsproblemer har cookies nogle tekniske ulemper, der er iboende i enhver data. Især identificerer de ikke altid brugeren nøjagtigt og kan være årsag til ondsindede angreb.

Upræcis identifikation

Hvis der bruges mere end én browser på en computer, har hver enkelt browser normalt et separat cookielager. Derfor identificerer cookies ikke en person, men en kombination af konto , computer og browser. Enhver person, der bruger flere konti, computere eller browsere, har således flere sæt cookies.

Cookietyveri

Under normal drift udveksles der konstant cookies mellem serveren og brugerens browser. Da cookies kan indeholde følsomme oplysninger (brugernavn, adgangsbetingelser osv.), bør deres indhold ikke gøres tilgængeligt for andre. Cookietyveri er handlingen med uautoriseret aflytning af cookies af tredjeparter.

Cookies kan blive stjålet ved hjælp af trafikanalyse  - dette kaldes sessions-kapring. Netværkstrafik kan opsnappes af mere end blot dens afsender og modtager (især på offentlige Wi-Fi-netværk ). Denne trafik inkluderer også cookies, der overføres via ukrypterede HTTP-sessioner. Hvor netværkstrafikken ikke er krypteret, kan angribere læse netværksbrugeres kommunikation, herunder deres cookies, ved hjælp af programmer kaldet sniffere .

Kryptering af data i cookies af serveren fjerner problemet med deres sikkerhed, dog er det muligt at erstatte cookies med en hacker. For at gøre det umuligt at få adgang til selv krypterede cookies kan det hjælpe at etablere en krypteret forbindelse mellem brugeren og serveren ved hjælp af HTTPS -protokollen . Serveren kan også bruge et særligt flag ved indstilling af cookies, hvorefter browseren kun sender dem over en pålidelig kanal, for eksempel over en SSL - forbindelse [6] .

Men et stort antal websteder, selv ved hjælp af sikre HTTPS-sessioner til at autentificere brugeren, sender derefter cookies og andre data over en enklere, ukrypteret HTTP-forbindelse. Angribere kan nemt opsnappe andre brugeres cookies og bruge dem på de respektive websteder [36] .

For at sikre, at cookien kun transmitteres over en HTTPS-session, skal cookien have attributten Secure.

En anden måde, cookies bliver stjålet på, er cross-site scripting og uautoriseret afsendelse af cookies til servere, der ikke burde modtage dem. Moderne browsere kan udføre kodestykker modtaget fra serveren. Hvis cookies er tilgængelige under denne udførelse, kan deres indhold ende i en eller anden form på servere, der ikke burde kunne få adgang til dem. Kryptering af cookien hjælper ikke i dette tilfælde [37] .

Følgende type cross-site scripting bruges typisk på websteder, hvor brugere har tilladelse til at sende meddelelser med HTML-indhold. Ved at indsætte den passende PHP/Javascript-kode i en meddelelse kan en hacker få cookies fra andre brugere.

Disse angreb kan forhindres ved at indstille HttpOnly-flaget [38] , som gør cookies utilgængelige for scripts på klientsiden. Web-udviklere bør dog overveje beskyttelse mod cross-site scripting under udviklingen af ​​websteder [39] .

Cookie spoofing

Selvom cookies i teorien skal bevares og sendes tilbage til serveren uændret, kan en angriber ændre deres indhold, før de sendes. For eksempel kan cookies indeholde det samlede beløb, som brugeren skal betale for deres køb; ved at ændre denne værdi, vil angriberen være i stand til at betale mindre end det indstillede beløb. Processen med at ændre indholdet af en cookie kaldes cookie-spoofing .

For at beskytte mod sådanne angreb gemmer de fleste websteder kun sessions-id'et i en cookie, et tilfældigt genereret tal eller sæt af tegn, der bruges til at identificere sessionen, mens alle andre oplysninger gemmes på serveren. I dette tilfælde er udskiftning af cookies meget vanskeligere.

Cookies på tværs af websteder

Hvert websted skal have sine egne cookies, og example1.com må ikke ændre eller indstille en anden example2.orgs cookie. Webbrowsersårbarheder gør det muligt for ondsindede websteder at overtræde denne regel. Dette ligner cookie-spoofing, men her angriber angriberen brugere med sårbare browsere, ikke siden direkte. Sessionsidentifikatorer kan være målet for sådanne angreb.

For beskyttelse rådes brugere til at bruge de nyeste versioner af browsere, der løser dette problem.

Ustabilitet mellem klient og server

Cookies kan forårsage konflikter mellem klient og server. Hvis brugeren modtager cookien og derefter klikker på browserens tilbage-knap, så er browserens tilstand allerede anderledes end da cookien blev modtaget. Lad os for eksempel tage en e-butik med en cookie-baseret indkøbskurv: brugeren tilføjer et køb til indkøbskurven og klikker derefter på tilbage-knappen, men købet forbliver i indkøbskurven, selvom brugeren måske har ønsket at annullere købet . Dette kan føre til forvirring og fejl. Webudviklere bør huske dette og tage skridt til at håndtere sådanne situationer.

Cookie udløbsdato

Persistente cookies er blevet kritiseret af eksperter for deres lange holdbarhed, hvilket gør det muligt for websteder at spore og profilere brugere over tid [40] . Sikkerhedsproblemer er også involveret her, da stjålne persistente cookies kan bruges i en betydelig periode.

Derudover kan en veldesignet malware, der kan lanceres efter brugergodkendelse, overføre sessionscookies til angriberens computer, som i en første tilnærmelse vil tillade besøg på et sikkert websted uden at indtaste et brugernavn og adgangskode i vilkårligt lang tid.

Almindelige cookies har en meget lang, men begrænset "levetid", hvorefter de slettes. Derudover kan eventuelle cookies i browseren slettes ved hjælp af en særlig mulighed. Som følge heraf ophører browseren med at identificere den besøgende, når han går ind på siden igen. Den polske specialist Sammy Kamkar besluttede at systematisere de mest "overlevelige" cookies, hvilket resulterede i et JavaScript-bibliotek kaldet Everycookie. Disse vidundercookies tillader teoretisk, at enhver besøgende på webstedet kan identificeres, når de vender tilbage til siden. Et websted, der bruger Everycookie-bibliotekerne, omgår nemt alle anonymitetsforanstaltninger (selvom nogle antivirus kan registrere sådanne websteder som farlige). For at beskytte mod Everycookie anbefales det at bruge tilstanden Privat browsing eller specielle programmer såsom Mil Shield.

Brug af cookies

Sessionsstyring

Cookies blev oprindeligt indført for at give brugerne mulighed for at registrere de varer, de ønsker at købe, mens de navigerer på et websted (virtuel "indkøbskurv" eller "indkøbskurv") [41] [42] . I dag bliver indholdet af en brugers indkøbskurv dog typisk gemt i en database på serveren frem for i en cookie om kunden. For at holde styr på, hvilken bruger der tilhører hvilken indkøbskurv, sender serveren klienten en cookie indeholdende et unikt sessions-id (normalt en lang række af tilfældige bogstaver og tal). Fordi der sendes cookies til serveren ved hver anmodning fra klienten, vil dette sessions-id blive sendt tilbage til serveren, hver gang brugeren besøger en ny side på hjemmesiden, der lader serveren vide, hvilken indkøbskurv der skal vises til brugeren.

En anden populær brug af cookies er til at logge ind på websteder. Når en bruger besøger et websteds login-side, sender webserveren typisk en cookie til klienten, der indeholder et unikt sessions-id. Når en bruger logger på, husker serveren, at det pågældende sessions-id er blevet godkendt og giver brugeren adgang til dens tjenester.

Fordi sessionscookies kun indeholder et unikt sessions-id, gør dette mængden af ​​personlige oplysninger, som et websted kan gemme om hver bruger, praktisk talt ubegrænset - webstedet er ikke bundet af grænser for cookiestørrelse. Sessionscookies hjælper også med at reducere sideindlæsningstider, fordi mængden af ​​information i en sessionscookie er lille og kræver lidt båndbredde.

Personalisering

Cookies kan bruges til at huske information om brugeren for at vise vedkommende relevant indhold over tid. For eksempel kan en webserver sende en cookie, der indeholder det brugernavn, der sidst blev brugt til at logge ind på en hjemmeside, så den automatisk kan udfyldes, næste gang brugeren logger ind.

Mange websteder bruger cookies til personalisering i henhold til brugerens præferencer. Brugere vælger deres præferencer ved at indtaste dem i en webformular og indsende formularen til serveren. Serveren koder indstillingerne i en cookie og sender cookien tilbage til browseren. Hver gang en bruger tilgår en side på hjemmesiden, kan serveren således personalisere siden efter brugerens præferencer. For eksempel brugte Google-søgemaskinen engang cookies til at give brugere (selv ikke-registrerede brugere) mulighed for at bestemme, hvor mange søgeresultater pr. side de vil se.

Sporing

Cookies bruges til at spore brugernes browservaner. Dette kan også til en vis grad gøres ved at bruge IP-adressen på den computer, der anmoder om siden, eller refererfeltet i HTTP-anmodningsheaderen, men cookies giver mulighed for større præcision. Dette kan demonstreres, hvis brugeren anmoder om en side på webstedet, men anmodningen ikke indeholder en cookie, serveren antager, at dette er den første side, brugeren har besøgt. Så serveren genererer en unik identifikator (normalt en sekvens af tilfældige bogstaver og tal) og sender den som en cookie til browseren sammen med den anmodede side.

Fra nu af vil cookien automatisk blive sendt af browseren til serveren, hver gang der anmodes om en ny side fra siden. Serveren sender ikke kun siden som normalt, men gemmer også URL'en på den anmodede side, datoen/tidspunktet for anmodningen og cookien i en logfil.

Ved at analysere denne logfil kan du bestemme, hvilke sider brugeren har besøgt, i hvilken rækkefølge og hvor længe.

Cookie-alternativer

Nogle af de operationer, som cookies bruges til, kan implementeres ved hjælp af andre mekanismer. Disse alternativer har dog deres ulemper, som gør cookies nogle gange mere foretrukne i praksis. De fleste af disse alternativer giver dig mulighed for at spore brugeren, omend på en mindre pålidelig måde end cookies. Som følge heraf forbliver privatlivets fred i fare, selvom cookies deaktiveres af browseren eller ikke indstilles af serveren.

IP-adresse

Denne upålidelige metode til at spore brugere er afhængig af at gemme IP-adresserne på de computere, der ser siderne. Denne teknik har været tilgængelig siden begyndelsen af ​​World Wide Web , og kræver viden om klientens IP-adresse for at kunne indlæse en side. Disse oplysninger kan gemmes på serveren, uanset om der bruges cookies eller ej.

Denne metode er dog mindre sikker end cookies, fordi computere og proxyer kan deles mellem flere brugere, og én computer kan bruge forskellige IP-adresser i forskellige sessioner (dynamisk IP-adresse).

Sporing efter IP-adresse er muligvis ikke mulig, når du bruger systemer til bevarelse af anonymitet (for eksempel Tor ). I sådanne systemer kan en enkelt browser have flere IP-adresser, og flere brugere kan bruge den samme IP-adresse, hvilket gør det umuligt at spore IP-adressen.

Nogle større internetudbydere, herunder AOL , sender al webtrafik gennem et proxy -netværk , hvilket også gør denne metode ubrugelig.

URL (forespørgselsstreng)

En mere avanceret teknik er baseret på indlejring af data i URL'en. Dette gøres normalt ved hjælp af en forespørgselsstreng, men andre dele af URL'en kan også bruges. JavaScript og PHP gør udstrakt brug af disse mekanismer, når cookies er deaktiveret.

Webserveren tilføjer en forespørgselsstreng til et link til en webside, når den sendes til browseren. Når brugeren klikker på linket, returnerer browseren en forespørgselsstreng til serveren.

I denne henseende er forespørgselsstrengen og cookien meget ens: de er stykker serverinformation, der returneres af browseren. Men der er visse forskelle: Da forespørgselsstrengen er en del af URL'en, vil den samme information blive overført til serveren, når du genbruger denne URL. Hvis f.eks. en brugers muligheder er kodet i en URL-forespørgselsstreng, og brugeren sender denne URL til en anden bruger, vil disse muligheder også være gyldige for den anden bruger.

Desuden, selvom brugeren gentagne gange får adgang til den samme side, er der ingen garanti for, at forespørgselsstrengen forbliver uændret. For eksempel, når du navigerer fra webstedets interne sider og fra eksterne søgemaskiner, vil forespørgselsstrengene være forskellige, mens cookies forbliver de samme.

En anden ulempe ved forespørgselsstrengen kommer fra et sikkerhedssynspunkt: lagring af sessions-id'et i forespørgselsstrengen gør det lettere at angribe. Det er mere sikkert at overføre et ID i en cookie.

Skjulte formularfelter

En måde at spore en session med et server-side-program på er at bruge webformularer med skjulte felter. Denne metode minder meget om URL-forespørgselsstrengen og har næsten de samme fordele og ulemper, og hvis formularparametrene sendes via HTTP GET-metoden, bliver felterne faktisk en del af den URL, som browseren sender til serveren . Men de fleste formularer behandles af HTTP POST , hvor oplysningerne hverken er en del af URL'en eller cookien.

Denne tilgang har to fordele med hensyn til sporing: For det første betyder indsættelse af oplysningerne i HTML-koden og i POST'en og ikke i URL'en, at den gennemsnitlige bruger simpelthen ikke vil bemærke det, og for det andet kopieres sessionsinformationen ikke. med at kopiere URL'en (f.eks. når en bruger sender et link via e-mail). Ulempen ved denne metode er, at sessionsinformationen er indeholdt i HTML-koden, så websiden skal genereres hver gang den anmodes, hvilket øger belastningen på webserveren.

HTTP-godkendelse

HTTP-protokollen inkluderer grundlæggende autentificering og kryptering, som kun giver adgang til en side, når brugeren indtaster det korrekte brugernavn og adgangskode. Hvis serveren anmoder om dette, så kontakter browseren brugeren og, efter at have modtaget de nødvendige data, gemmer og bruger dem til at få adgang til andre sider uden at kræve, at brugeren indtaster dem igen. Fra brugerens synspunkt er effekten den samme som ved brug af en cookie: et brugernavn og en adgangskode kræves kun én gang, og derefter får brugeren adgang til siden. Med Basic Authentication sendes brugernavn/adgangskodekombinationen ukrypteret til serveren med hver browseranmodning. Det betyder, at hvis nogen opsnapper trafikken, vil de være i stand til at få disse oplysninger og efterfølgende bruge dem. Med krypteret autentificering krypteres brugernavnet og adgangskoden med en tilfældig nøgle genereret af serveren.

Gemmer på klientsiden

Nogle webbrowsere tillader en side at gemme oplysninger lokalt til senere hentning. Internet Explorer understøtter for eksempel lagring af information i historik, favoritter , XML -lagring eller tillader direkte lagring af en webside på disk [43] .

JSON Web Tokens

JSON Web Token (JWT) er en selvstændig pakke med informationer, der kan bruges til at gemme oplysninger om en brugers identitet og identitet. Dette gør det muligt at bruge dem i stedet for sessionscookies. I modsætning til cookies, som automatisk er knyttet til hver HTTP-anmodning af browseren, skal JWT'er udtrykkeligt vedhæftes af webapplikationen til hver HTTP-anmodning.

DOM Window.name

Alle moderne webbrowsere kan gemme en ret stor mængde data (2-32 MB) via JavaScript ved at bruge DOM-egenskaben window.name. Disse data kan bruges i stedet for sessionscookies og er også på tværs af domæner. Teknikken kan kombineres med JSON/JavaScript-objekter for at gemme komplekse sæt af sessionsvariable [44] på klientsiden.

Browser cache

Webcachen kan også bruges til at gemme information, der kan bruges til at spore individuelle brugere. Denne metode udnytter det faktum, at webbrowseren vil bruge de ressourcer, der er gemt i cachen i stedet for at downloade dem fra webstedet, når den fastslår, at den seneste version af ressourcen allerede er i cachen.

For eksempel kan en side indeholde et link <script type="text/javascript" src="example.js">. Scriptet angiver en unik identifikator for brugeren (f.eks. var userId = 3243242;). Efter det første besøg, hver gang brugeren besøger siden, vil denne fil blive indlæst fra cachen i stedet for at blive indlæst fra serveren. Dens indhold vil således aldrig ændre sig.

Den eneste fordel ved denne metode er arbejde på tværs af websteder, som tillader uautoriseret overvågning af brugeren. Ulemper - ikke-triviel overførsel af disse oplysninger til serveren og ekstrem uhåndterlighed: browseren kan til enhver tid miste cachelagrede data, afhængigt af indstillinger, hukommelsesstørrelse og diskplads. Mozilla Firefox 85+ tillader ikke sporing på tværs af websteder via cache [45] .

Browserindstillinger

De fleste moderne browsere understøtter cookies og giver brugeren mulighed for at deaktivere dem. Følgende er almindelige muligheder [46] :

Se også

Noter

  1. 1 2 3 FAQ om cookies  (engelsk)  (link ikke tilgængeligt) . Microsoft. Hentet 12. august 2008. Arkiveret fra originalen 26. august 2011.
  2. Problemer med arbejdet i netbutikken (utilgængeligt link) . OZON.ru. _ Hentet 12. august 2008. Arkiveret fra originalen 14. september 2008. 
  3. Hjælpecenter, Websøgning (downlink) . Google . Hentet 12. august 2008. Arkiveret fra originalen 26. august 2011. 
  4. Kiwi fugl. Målrettet annoncering - en trussel mod privatlivets fred? (utilgængeligt link) . Computerra . Hentet 12. august 2008. Arkiveret fra originalen 5. april 2013. 
  5. Netscape. Udkast til cookiespecifikation  (eng.) (txt)  (link ikke tilgængeligt) . Hentet 7. august 2008. Arkiveret fra originalen 26. august 2011.
  6. 1 2 RFC 2109 og RFC 2965  - The HTTP State Mechanism ( IETF )
  7. Andrey Alikberov. Hvad er cookies, og hvordan man arbejder med dem (utilgængeligt link) (1998). Hentet 2. august 2008. Arkiveret fra originalen 1. september 2011. 
  8. John Schwartz. At give Web en hukommelse koster dets brugere Privatliv  (engelsk)  (link ikke tilgængeligt) . New York Times (4. september 2001). Hentet 7. august 2008. Arkiveret fra originalen 26. august 2011.
  9. Netscape Communications introducerer ny netværksfri internetnavigator  (engelsk)  (link ikke tilgængeligt) . CNET Networks (13. oktober 1994). Hentet 7. august 2008. Arkiveret fra originalen 26. august 2011.
  10. Marc Andreassen. Fred, her er det!  (engelsk) (13. oktober 1994). — Besked på Usenet . Hentet 7. august 2008. Arkiveret fra originalen 2. december 2007.
  11. Sandy Hardmyer. Historien om Internet Explorer  (engelsk)  (link ikke tilgængeligt) . Microsoft (25. august 2005). Hentet 7. august 2008. Arkiveret fra originalen 26. august 2011.
  12. Roger Clark. Cookies  (engelsk)  (utilgængeligt link) (1. juni 1998). Hentet 7. august 2008. Arkiveret fra originalen 26. august 2011.
  13. "Opretholdelse af sessionstilstand med cookies" . Microsoft Developer Network (22. oktober 2012). Hentet 31. marts 2018. Arkiveret fra originalen 1. april 2018.
  14. Tredjeparts domæner . webcookies.org. . Hentet 17. marts 2019. Arkiveret fra originalen 1. juli 2019.
  15. Antal cookies . webcookies.org . Hentet 17. marts 2019. Arkiveret fra originalen 1. juli 2019.
  16. Lær mere om den offentlige suffiksliste . Publicsuffix.org (2016). Hentet 17. marts 2019. Arkiveret fra originalen 14. maj 2016.
  17. Mayer, Jonathan. Sporing af sporerne: Microsoft Advertising . Center for Internet og Samfund (2011). Hentet 22. marts 2019. Arkiveret fra originalen 22. marts 2019.
  18. Vijayan, Jaikumar. Microsoft deaktiverer 'supercookies', der bruges på MSN.com-besøgende (2014). Hentet 22. marts 2019. Arkiveret fra originalen 22. marts 2019.
  19. Eksempel på cookiepræfikser . googlechrome.github.io Hentet 2. september 2019. Arkiveret fra originalen 2. september 2019.
  20. Duct Tape og Baling Wire-Cookie-  præfikser . tekst/almindelig (9. oktober 2015). Hentet 2. september 2019. Arkiveret fra originalen 2. september 2019.
  21. Ross Shannon. Cookies og JavaScript  (engelsk)  (utilgængeligt link) (26. februar 2007). Hentet 7. august 2008. Arkiveret fra originalen 26. august 2011.
  22. Cookies og autorisation  (eng.)  (utilgængeligt link) . MSDN . Hentet 13. august 2008. Arkiveret fra originalen 26. august 2011.
  23. Understøttelse af webbrowser  (engelsk)  (link ikke tilgængeligt) . Universitetet i Buffalo (15. november 2004). Hentet 13. august 2008. Arkiveret fra originalen 14. september 2005.
  24. 1 2 David Whalen. Uofficielle ofte stillede spørgsmål om cookies  (engelsk)  (utilgængeligt link) (6. august 2002). Hentet 8. august 2008. Arkiveret fra originalen 26. august 2011.
  25. Joanna Geary. Sporing af trackere: Hvad er cookies? En introduktion til websporing . The Guardian (23. april 2012). Hentet 28. september 2018. Arkiveret fra originalen 27. juni 2017.
  26. Brian Quinton. Brugere forstår det ikke, kan ikke slette cookies  (engelsk)  (link utilgængeligt) (18. maj 2005). Hentet 7. august 2008. Arkiveret fra originalen 26. august 2011.
  27. Cookiesikkerhedsrapport  = Bittersøde cookies . Nogle sikkerheds- og privatlivsovervejelser // European Network Security and Information Security Agency (ENISA) . – 2011.  
  28. CIA taget i at stjæle cookies  (eng.)  (utilgængeligt link) . CBS News (20. marts 2002). Hentet 8. august 2008. Arkiveret fra originalen 26. august 2011.
  29. Agenturet fjerner ulovlige sporingsfiler  (engelsk)  (utilgængeligt link) . Associated Press (29. december 2005). Hentet 8. august 2008. Arkiveret fra originalen 26. august 2011.
  30. Direktiv om privatliv og elektronisk kommunikation  (engelsk)  (link ikke tilgængeligt) (12. juli 2002). Hentet 8. august 2008. Arkiveret fra originalen 26. august 2011.
  31. Direktiv 2009/136/EF af 25. november 2009  (engelsk) . Hentet 6. juni 2017. Arkiveret fra originalen 19. juni 2017.
  32. Artikel 29-arbejdsgruppe - holdning 04/2012 af 7. juni 2012 om undtagelsen fra kravet om at indhente samtykke til cookies  (eng.) . Hentet 6. juni 2017. Arkiveret fra originalen 21. juli 2017.
  33. ↑ Forslag til en forordning om e-databeskyttelse  . Hentet 6. juni 2017. Arkiveret fra originalen 29. september 2018.
  34. Elena Neb. Nye regler for arbejde med personoplysninger om europæere . texterra.ru (26. juni 2018). Hentet 28. september 2018. Arkiveret fra originalen 28. september 2018.
  35. Cookie-indstillinger i Opera 9  (engelsk)  (utilgængeligt link) . Hentet 8. august 2008. Arkiveret fra originalen 26. august 2011.
  36. Wi-fi hacking webmail  (engelsk)  (link ikke tilgængeligt) . BBC News (3. august 2007). Hentet 8. august 2008. Arkiveret fra originalen 26. august 2011.
  37. Hvordan ser XSS-cookietyveri ud?  (engelsk)  (utilgængeligt link) . Cgisecurity.com (maj 2002). Hentet 8. august 2008. Arkiveret fra originalen 26. august 2011.
  38. Reduktion af risikoen for cross-site scripting med kun HTTP cookies  (eng.)  (dødt link) . Microsoft. Hentet 8. august 2008. Arkiveret fra originalen 13. august 2011.
  39. Michael Howard; Keith Brown. 10 tips til at beskytte din kode  (engelsk)  (link ikke tilgængeligt) . Microsoft (2000). Hentet 8. august 2008. Arkiveret fra originalen 26. august 2011.
  40. Eleanor Mills. Google reducerer udløb af cookies for at forbedre sikkerheden  (engelsk)  (dødt link) . CNET Networks (16. juli 2007). Hentet 8. august 2008. Arkiveret fra originalen 26. august 2011.
  41. Kesan, Jey; og Shah, Rajiv. dekonstruere kode.
  42. David Kristol. HTTP-cookies: Standarder, privatliv og politik . — ACM-transaktioner på internetteknologi. - 2001. - S. 151-198.
  43. Introduktion til opbevaring  (engelsk)  (link ikke tilgængeligt) . MSDN . Hentet 8. august 2008. Arkiveret fra originalen 26. august 2011.
  44. ThomasFrank.se . ThomasFrank.se (22. maj 2010). Hentet 22. marts 2019. Arkiveret fra originalen 23. marts 2019.
  45. Firefox 85 slår ned på Supercookies - Mozilla Security Blog . Hentet 9. marts 2021. Arkiveret fra originalen 3. februar 2021.
  46. David Whalen. Den uofficielle Cookie FAQ v2.6 (2002). Hentet 24. juli 2008. Arkiveret fra originalen 26. august 2011.
  47. Tredjepartscookies, DOM-lagring og privatliv: Matt Mastraccis blog . grack.com (2010). Hentet 22. marts 2019. Arkiveret fra originalen 19. august 2018.
  48. Flere virksomheder modsætter sig Googles FLoC-teknologi til at erstatte cookies Arkiveret 28. april 2021 på Wayback Machine Browserproducenter har forladt Googles målretningsteknologi for cookieerstatning Arkiveret 28. april 2021 på Wayback Machine [1] Arkiveret 28. april 2021 på Wayback Machine

Links