Cookiet eli keksit

31.10.1999

Ari Hännikäinen
Sähkö
ahannika@cc.hut.fi

Sami Savio
Sähkö
savio@cc.hut.fi

Teknillinen korkeakoulu

 

Tiivistelmä

Keksien avulla voidaan HTTP-protokollaan saada tilanhallintaominaisuuksia yksinkertaisella tekniikalla. Tilanhallinnan avulla sivustoista saadaan personoituja ja voidaan toteuttaa selainkäyttöliittymällisiä sovelluksia. Monet käyttäjät suhtautuvat kuitenkin kekseihin epäilevästi. Vaikka kekseillä onkin monia rajoituksia, joiden avulla niiden käyttöä vääriin tarkoituksiin pyritään estämään, liittyy niihin monien turhien ennakkoluulojen lisäksi kuitenkin joitain todellisiakin tietoturvaongelmia.


1 Historia ja tausta

2 Tekniikka

2.1 Mitä keksit ovat ?

2.2 HTTP-lisäotsikot

2.3 Keksien tallentaminen

2.4 Rajoituksia

2.5 Ongelmia

3 Ohjelmointitekniikat

3.1 Selainohjelmointi

3.2 Palvelinohjelmointi

4 Käyttökohteet

4.1 Käyttäjäprofiili

4.2 Personointi

4.3 Kohdennettu mainonta

4.4 Käyttäjätunnistus

4.5 Verkkokauppasovellukset

5 Tietoturva

5.1 Turhat pelot

5.2 Todelliset huolenaiheet

5.3 Varotoimenpiteet

Lähdeluettelo

Lisätietoja


1. Historia ja tausta

Cookiet eli suomeksi keksit ovat menetelmä, jonka avulla alunperin yhteydettömäksi ja samalla tilattomaksi suunniteltuun HTTP-protokollaan voidaan saada tilanhallintaominaisuuksia. HTTP (HyperText Transfer Protocol) suunniteltiin yksinkertaiseen dokumenttien lukemiseen, hallintaan ja linkittämiseen, mutta WWW:n kehityksen myötä käyttökohteet ovat muuttuneet paljon.

HTTP-protokolla muodostuu palvelimelle lähetettävistä pyynnöistä ja niihin saatavista vastauksista. Yksinkertaisimmillaan pyynnöt ovat toisistaan riippumattomia ja vaste voidaan antaa vain siihen liittyvään yhteen pyyntöön perustuen. HTTP:n alkuperäiseen käyttötarkoitukseen protokolla soveltuu hyvin.

Nykyisin www-käyttöliittymä on muuttanut rooliaan dokumenttien hallinnasta enemmän tavanomaisten sovelluskäyttöliittymien suuntaan. Toiminnosta saatava vaste ei riipu vain juuri toimintoa varten annetuista tiedoista, vaan lisäksi kaikesta siitä, mitä käyttäjä on aiemmin tehnyt. Tällöin tarvitaan selvästikin keinoa sitoa useita erilliä HTTP-pyyntöjä samaan 'istuntoon' kuuluviksi - tilanhallintaa.

Ensimmäiset ratkaisuyritykset tilanhallintaongelmaan perustuivat IP-osoitteisiin. Palvelinohjelmoinnilla selvitettiin HTTP-pyynnön lähettäjän IP-osoite ja käsiteltiin samasta IP-osoitteesta tulevat pyynnöt samaan 'istuntoon' kuuluvina. Ensivaikutelmaltaan hyvä ratkaisu ei kuitenkaan ole käytännössä kelvollinen. Tietokoneissa käytetään paljon dynaamisia IP-osoitteita, jolloin jokin kone voi käyttää samaa osoitetta kuin toinen hetkeä aiemmin. Lisäksi monen käyttäjän ympäristöissä useilla käyttäjillä on yksi ja sama IP-numero käytössään. Näissä tapauksissa IP-osoitteisiin perustuva tilanhallinta ei toimi. Alkeellista tilanhallintaa voidaan myös saada HTTP-pyyntöjen URL:iin liitettävällä lisämerkkijonolla (querystring) tai sivustoissa käytettävillä HTML-formien piilokentillä. Tila kuitenkin menetetään näissä tapauksissa suljettaessa välillä selainohjelma tai poistuttaessa sivustolta muuten (navigoimalla muualle).

Tilanhallintaongelman ratkaisemiseksi Netscape kehitti keksit vuonna 1994 selainversionsa 1.1 yhteydessä. Käytännössä Netscapen esityksestä muodostui 'standardi', joka on vieläkin käytössä. Uusiakin ehdotuksia on tehty lisäpiirteiden lisäämiseksi kekseihin: Netscapen ehdotus laajennuksista ja sitä hyvin mukaileva RFC 2109 ([3]). Laajennukset eivät kuitenkaan ole vielä laajalti tuettuja. Tässä dokumentissa kekseillä tarkoitetaan jatkossa alkuperäisen Netscapen esityksen mukaisia keksejä ellei muuta mainita. [6]

Nykyisin käytännössä kaikki merkittävät selainohjelmat tukevat keksejä. Hyvin monet Internetin sivustot käyttävät keksejä ja varsin monet eivät edes toimi ilman selaimen tukea kekseille.

2. Tekniikka

2.1 Mitä keksit ovat ?

Keksit ovat palvelimen selaimelle muun HTTP-vasteen ohessa lähettämiä pieniä tekstimuotoisia tietoja, jotka selain varastoi ja tarvittaessa uudelleenlähettää HTTP-pyyntöjen mukana palvelimelle.

2.2 HTTP-lisäotsikot

Teknisesti tilanhallinta tehdään kahdella HTTP-lisäotsikolla, Cookie ja Set-Cookie. Palvelin antaa cookien selaimelle vasteen yhteydessä Set-Cookie lisäotsikossa. Seuraavien http-pyyntöjen ohessa selain välittää cookien takaisin palvelimelle Cookie lisäotsikossa. Kumpikin otsikko on muodoltaan seuraavanlainen [5]:
Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN_NAME; secure

NAME=VALUE
- keksin varsinainen sisältö
- sama palvelin voi antaa samalle URL:lle useita keksejä eri nimellä

expires=DATE
- keksin vanhenemisaika
- jollei annettu, niin keksiä käsitellään väliaikaisena (selaimen elinaikaisena)

domain=DOMAIN_NAME
- keksi välitetään kaikille tahoille, jotka vastaavat (loppuosaltaan) domain nimeä
- domain nimen on oltava riittävän pitkä, tapauksesta riippuen sisällettävä vähintään 2 tai 3 pistettä.
- nimen täytyy vastata sen antanutta tahoa
- jollei annettu, niin oletusarvona keksin antanut palvelin

path=PATH
- keksi välitetään niiden pyyntöjen yhteydessä, joiden URL:n alku vastaa path:ia
- nimen täytyy vastata 'keksin antanutta sivua' (HTTP-pyynnön URL)
- jollei annettu, niin oletusarvona keksin antanut sivu

secure
- jos keksi on merkitty tällä, niin se välitetään vain turvallista yhteyttä pitkin (HTTPS)

Yhdessä HTTP-pyynnössä tai -vasteessa voi olla useampia Set-Cookie tai Cookie lisäotsikoita, joten useiden keksien antaminen tai palauttaminen kerralla on mahdollista. Jos selaimen saama keksi on kaikilta edellä esitellyiltä tiedoiltaan sama kuin aiemmin saatu (value:ta lukuunottamatta) ylikirjoitetaan vanhempi keksi. Palvelin voi poistaa cookien kirjoittamalla sen tilalle uuden, jonka vanhenemispäivämäärä on jo ohitettu. [5]

2.3 Keksien tallentaminen

Keksit voivat olla väliaikaisia tai niiden elinaika voi olla erikseen määritelty. Väliaikaiset keksit selain varastoi yleensä muistiin ja ne kadotetaan suljettaessa selainohjelma. Toisaalta keksien elinaika voidaan määritellä sekunnin tarkkuudella päättymään tiettynä päivänä tiettyyn aikaan. Tällöin selainohjelma varastoi ne yhteen tai useampaan tekstitiedostoon levylle, yleensä selväkielisinä. Keksit ovat käytössä myöhemminkin vaikka selain tai kone olisi suljettu välillä. Vanhentuneita keksejä ei enää lähetetä palvelimelle ja ne poistetaan säilytyksestä.

2.4 Keksien rajoitukset

Selain lähettää keksit vain palvelimille, joiden domain vastaa saadun keksin domain:ia loppuosaltaan. Vastaavasti keksit lähetetään vain sellaisten HTTP-pyyntöjen yhteydessä joiden URL:n alkuosa vastaa keksissä annettua. Jos kriteerit täyttäviä keksejä löytyy useampia, ne kaikki lähetetään. Koska keksin domain:ksi voidaan asettaa vain keksin antajaa vastaava nimi, estetään 'globaalit' keksit, jotka lähetettäisiin kaikkiin osoitteisiin.

Koska keksejä voi tulla selaimelle suuria määriä säilytettäväksi, voidaan niitä tarvittaessa poistaa vanhimmista alkaen. Netscape on antanut cookie-määrittelyssään ohjeistuksen vähimmäismääristä, jotka selaimen olisi talletettava [5]:
- kaikkiaan vähintään 300 keksiä
- kokorajoitus 4kB/keksi
- vähintään 20 keksiä/domain tai palvelin
Selaimen toteuttamat rajoitukset voivat olla väljempiäkin. Jotkin rajat täytyy kuitenkin olla, ettei ilkivaltainen taho voi kirjoittaa käyttäjän koneen kiintolevyä täyteen keksejä.

2.5 Ongelmia

Huolimatta monista eduista, joita keksit tarjoavat, on niillä myös monia käytettävyttä rajoittavia puutteita.

Kekseillä ei koskaan voida varmuudella tunnistaa käyttäjää, koska keksit ovat selainohjelmakohtaisia. Samaa konetta voi käyttää useampi henkilö. Todellisissa monen käyttäjän ympäristöissä tämä ei ole ongelma, jokainen käyttäjä saa käyttöönsä omat keksit. Kuitenkin esimerkiksi monissa julkiseen käyttöön tarkoitetuissa mikroissa käyttäjiä ei erotella toisistaan ja kaikki käyttävät näin samoja keksejä.

Kekseihin ei juurikaan voi luottaa. Kaikki selaimet eivät tue niitä tai käyttäjä voi estää niiden käytön. Vaikka keksi olisikin kerran annettu, mikään ei takaa, että se saadaan takaisin alkuperäisenä. Se on voitu poistaa kokonaan tai sen sisältämiä tietoja on voitu muuttaa.

Tilanhallinnan kannalta kekseissä on yksi periaatteellinen puutos: istunnon jatkuminen voidaan kyllä tunnistaa saatavien keksien perusteella, mutta istunnon päättymistä ei voida huomata muusta, kuin siitä, ettei pyyntöjä enää tule palvelimelle.

3. Ohjelmointitekniikat

Keksejä voidaan käsitellä monilla erilaisilla ohjelmointitekniikoilla sekä palvelin-, että selainpäässä.

3.1 Selainohjelmointi

Kaikkia keksejä ei tarvitse välttämättä välittää selaimelle HTTP-otsikkotiedoissa. Sen sijaan voidaan välittää selaimelle jotain aktiivista sisältöä, jonka selain suorittaa tai tulkitsee ja joka käsittelee keksejä. Tähän tarkoitukseen on nykyisin tarjolla selainohjelmasta riippuen ainakin seuraavia tekniikoita: javascript, java-appletit, VBscript ja activeX-kontrollit. Käsiteltäessä keksejä selaimen aktiivisilla sisällöllä voidaan käyttäjän antaa omilla toimillaan vaikuttaa enemmän keksien käyttöön ja näin sovelluksesta saadaan dynaamisempi. On kuitenkin huomattava, että skripteillä ja appleteilla on tiukat turvallisuusrajoitukset - niilläkään ei voi kiertää keksien rajoituksia. Jos palvelin ei pysty antamaan selaimelle jotain keksiä turvallisuusrajoitusten takia muuten, ei se pysty sitä tekemään skriptien tai appletienkaan avulla.

3.2 Palvelinohjelmointi

Palvelinohjelmoinnissa keksien hallinta perustuu siihen, että ohjelma muokkaa selaimelle lähtevien vasteiden otsikkotietoja, joilla keksit annetaan selaimelle. Toisaalta taas tutkitaan tulevista pyynnöistä mahdolliset keksit ja ohjataan vasteen muodostamista löydettyjen tietojen perusteella. Palvelinohjelmointia voidaan periaatteessa tehdä millä tekniikoilla ja kielillä tahansa. (CGI, ISAPI, ASP, C, Java, perl, ...)

4. Käyttökohteet

Keksejä voidaan käyttää lukuisiin tarkoituksiin, mahdollisia käyttökohteita rajoittaa vain mielikuvitus.

4.1 Käyttäjäprofiili

Käyttäjien toimia voidaan seurata keksien avulla. Muodostuvat käyttäjäprofiilit ovat 'anonyymeja', mutta niitä voidaan silti hyödyntää. Keksien avulla voidaan saadaan perinteistä laskuria luotettavampaa tietoa sivulla vierailuista, kun pelkkien sivupyyntöjen sijasta lasketaan eri käyttäjiltä tulevia sivupyyntöjä. Käyttäjän navigointia sivustolla voidaan seurata ja hyödyntää tietoa parannettaessa sivuston käytettävyyttä. On kuitenkin muistettava kohdan 2.5 mukaisesti, ettei keksien avulla voida koskaan varmuudella tunnistaa käyttäjää, joten muodostuvat profiilit ovat vain ohjeellisia.

4.2 Personointi

Useissa tapauksissa keksejä käytetään sivujen personointiin. Yksinkertaisimmillaan personointi voi olla sivujen taustavärien asettaminen käyttäjän haluamaksi, parhaimmillaan kaikki tarjottava materiaali on suunnattu juuri kyseiselle käyttäjälle. Personointi voi perustua käyttäjän itsensä tekemiin suoranaisiin valintoihin tai kohdan 4.1 mukaisesti käyttäjästä muodostettuun profiiliin.

4.3 Kohdennettu mainonta

Kohdennettu mainonta on myöskin eräänlaista sisällön personointia (kts. kohta 4.2). Tämä keksien käyttökohde kasvattanut merkittävästi kekseihin liittyviä epäluuloja. [1]

4.4 Käyttäjätunnistus

Keksejä voidaan käyttää käyttäjätunnistuksen apuna. Jos käyttäjällä ei ole haluttua keksiä, hänet voidaan ohjata tunnistautumiseen, muutoin tarjotaan varsinainen haettu sisältö. Keksien käytöllä autentikoinnissa on monia etuja perinteiseen hakemisto-oikeuksiin perustuvaan oikeusasetteluun verrattuna: sisäänkirjautumisdialogi voidaan tehdä halutunlaiseksi, vältetään toistuva tunnistautuminen eri tiedostojärjestelmän haaroissa ja vältetään käyttöjärjestelmätasolla tehtävä käyttäjien lisäys ja hallinta. Varsinainen tunnistautuminen voidaan tehdä millä menetelmällä tahansa ja tarvittaessa suojatusti ssl:n avulla. Muut sivut voidaan tehokkuussyistä pitää suojaamattomina. Tällöin vain väliaikainen 'käyttäjä on tunnistettu'-keksi on vaarassa päätyä vääriin käsiin, eikä toistuvan väärinkäytön mahdollisuutta ole. Muunmuassa Microsoftin SiteServer käyttää kuvatunlaista menetelmää autentikoinnissa. [1]

4.5 Verkkokauppasovellukset

Keksien avulla voidaan toteuttaa alkeellinen 'ostoskori'. Usein on järkevämpää säilyttää varsinainen tieto palvelimella ja kuljettaa keksissä vain tietoa siitä, mistä varsinainen tietosisältö palvelimelta löytyy. Jos sivustolla on kuitenkin miljoonia käyttäjiä, voivat palvelimen tietomäärät kasvaa valtaviksi. Tällöin saattaa olla järkevämpää tallettaa osa tiedoista selaimelle kekseinä.

Keksejä voidaan käyttää vastaavalla tavalla muihinkin selainkäyttöliittymällisiin sovelluksiin.

5. Tietoturva

5.1 Turhat pelot

Kekseihin liittyy monenlaisia myyttejä, monet pelot niitä kohtaan ovat täysin aiheettomia. [2]

Keksit ovat vain palvelimelta saadun tiedon väliaikaisia säilytyspaikkoja. Palvelimelle välitetään vain siltä alunperin saatua tietoa. Keksit eivät voi 'urkkia' mitään tietoa käyttäjästä (nimeä, sähköpostiosoitetta tms.) eivätkä ne voi lukea mitään tietoa käyttäjän kiintolevyltä. Teknisillä rajoituksilla on pyritty estämään tietojen välitystä keksein muualle kuin alkuperäiselle taholle, joten huoli globaalista käyttäjän tietojen keruusta on useimmiten turha. Katso kuitenkin tarkennuksia kohdasta 5.2!

Keksit ovat puhtaasti tekstimuotoista tietoa, jota ei mitenkään tulkita käyttäjän koneella. Keksit eivät siis voi sisältää viruksia tai muita käyttäjälle harmillisia ohjelmia.

Käyttäjän kiintolevyä ei voida kirjoittaa täyteen keksejä, koska niiden määrälle ja koolle on asetettu rajoituksia kohdan 2.4 mukaisesti.

5.2 Huolenaiheita

Suurin ongelma kekseissä on, että ne toimivat yleensä oletusarvoisesti täysin käyttäjältä piilossa. Käyttäjä ei tiedä milloin keksejä käytetään ja mihin tarkoitukseen. Vaikka käyttäjä seuraisikin keksien kulkua, ei niiden käyttötarkoitus välttämättä selviä niiden sisällöstä. Keksit voivat olla vain sinällään merkityksettömiä tunnisteita, joilla varsinainen palvelimelle varastoitu tieto on löydettävissä. Tällöin käyttäjällä ei ole mahdollisuuksia seurata mitä tietoa hänestä on kerätty.

Keksien avulla käyttäjien käyttäytymistä voidaan seurata. Useimpien mielestä tämä on kuitenkin hyväksyttävää niin kauan kuin käyttäytymistietoja ei yhdistetä keneenkään tiettyyn käyttäjään. Kuten kohdassa 5.1 todettiin, eivät keksit voi automaattisesti sisältää mitään käyttäjää koskevia henkilötietoja. On kuitenkin huomattava, että jos sivustolla kerätään jotain tietoa HTML-lomakkeilla, voidaan tämä tieto yhdistää cookieiden avulla koostettuun tietoon (kts. kohta 4.1). Näin käyttäjistä voidaan muodostaa käyttäjäprofiileja, jotka voivat sisältää henkilökohtaisiakin tietoja.

Kohdassa 2.4 kuvattiin kekseille asetettuja domain rajoitteita, joilla on pyritty estämään 'globaali tietojenkeruu' käyttäjästä. Rajoitusta voidaan kuitenkin kiertää käyttämällä sivuille upotettuja objekteja (esimerkiksi kuvia toiselta palvelimelta) tai automaattisia uudelleenohjauksia sivustojen välillä. Tällöin avustava palvelin voi asettaa käyttäjälle oman domaininsa mukaisia cookieita. URL:n kyselymerkkijonoissa voidaan lisäksi välittää kyseiselle palvelimelle käyttäjää koskevia tietoja. Näihin menetelmiin perustuen toimivat useat kohdennettua mainontaa Internetissä tarjoavat yritykset. Tällä tavoin yhteistyössä toimivat tahot voivat periaatteessa ylläpitää keskitettyä tietokantaa käyttäjästä kyseisillä sivustoilla kerätyistä tiedoista - käyttäjän itse syöttämistä ja sivustoilla liikkumiseen perustuvista tiedoista.

Tietenkin yritykset voivat jakaa käyttäjästä keräämiään tietoja muutenkin kuin edellä kuvatulla tavalla. Loppujen lopuksi tässäkään tapauksessa ei ole kysymys siitä, mahdollistaako tekniikka tai sen 'porsaanreiät' jonkin asian. Tietoturva ja yksityisyys on paljon muutakin kuin teknisiä kysymyksiä, viime kädessä lainsäädäntö ratkaisee [4].

Keksit liikkuvat muun HTTP-liikenteen ohessa selväkielisenä ja niissä liikkuva tieto voi päätyä salakuuntelijalle. Vastaavasti keksit talletetaan normaalisti selväkielisinä tietokoneen kiintolevylle. Jos järjestelmää ei ole rakennettu turvalliseksi, saattavat keksit olla muiden käyttäjien luettavissa.

Keksejä käytetään usein sivustojen personoidun sisällön yhteydessä. Vanhempien proxyjen kanssa saattaa tällöin syntyä ongelmia: ne saattavat varastoida personoidun sivun ja antaa sen toiselle käyttäjälle, jolloin luottamuksellisia tietoja voi joutua vääriin käsiin. Toisaalta sivun sisältö voi pysyä samana, mutta sivun ohessa välitettävä keksi voi olla käyttäjäkohtainen. Tällöinkään proxy ei saisi yksioikoisesti välittää sitä toiselle käyttäjälle, seurauksena voi olla 'istuntojen' sekaantuminen ja jälleen tietojen päätyminen vääriin käsiin. Nykyaikaisten proxyjen kanssa näitä ongelmia ei kuitenkaan esiinny.

Keksejä hyödyntävän palvelinsovelluksen kannalta on myöskin muistettava kekseihin liittyvät tietoturvakohdat. Keksit liikkuvat selväkielisinä, joten joku voi lukea niiden sisältämiä tietoja. Erityisesti tämä on syytä muistaa käytettäessä keksejä apuna käyttäjän tunnistuksessa - salasana keksissä on helposti varastettavissa. Keksien olemassaoloon tai sisältöön ei saa myöskään liikaa luottaa. Käyttäjä on voinut estää keksien käytön selainohjelmassaan, poistaa jälkeenpäin annetun keksin levyltään tai käyttää useita eri tietokoneita ja/tai selainohjelmia. Koska keksit talletetaan useimmiten levylle selväkielisinä, on niiden sisällön muuttaminen helppoa. Siksi palvelimella ei voida koskaan luottaa siihen, että keksi saataisiin alkuperäisenä takaisin.

5.3 Varotoimenpiteet

Käytännössä useimmat tietoturvaan liittyvät kysymykset ovat selainohjelman vastuulla. Palvelin pystyy kirjoittamaan otsikkotietoihin mitä tahansa, jopa kekseille asetettuja rajoituksia rikkoen (kts. kohta 2.4). Selainohjelman täytyy varmistaa, että keksin domain ja path attribuutit vastaavat keksin myöntäjää. Selaimen täytyy myös varmistaa, että keksit välitetään vain niille tahoille, joille ne kuuluvat. Sen täytyy myös huolehtia keksien tuhoamisesta niiden vanhettua ja keksien koko- ja määrärajoituksista. Selainohjelman turvallisuus on siis olennaista.

Nykyaikaiset selainohjelmat tarjoavat monia erilaisia mahdollisuuksia keksien käsittelyyn. Useimmissa ainakin keksien estäminen kokonaan on mahdollista. Tämä ei kuitenkaan ole välttämättä järkevää, koska keksejä käytetään moniin hyödyllisiinkin asioihin ja monet internet-sovellukset eivät saata toimia ilman niitä. Parempi vaihtoehto on esimerkiksi saada selainohjelma varmistamaan käyttäjältä jokaisen keksin vastaanotto. Toisaalta hyvin monet palvelimet tarjoilevat keksin jokaisella niille osoitetulla pyynnöllä, joten tällaisten sivustojen käyttö ei enää järkevästi onnistu. Kehittyneempiä vaihtoehtoja on esimerkiksi vastaanottaa keksejä vain samalta palvelimelta, kuin jolta varsinainen sivu tulee. Tällä menettelyllä estetään keksien rajoitusten kiertämistä sivulle upotetuin objektein.

Tiedostot, joissa keksit säilytetään, ovat useimmissa tapauksissa selväkielisiä ja niitä voi suoraan editoida. Siten niistä voi myös helposti poistaa epämiellyttävät keksit. Tähän tarkoitukseen on olemassa myös lukuisia kolmannen tahon ohjelmistojakin, jotka helpottavat tehtävää.

Keksien turvallisuutta voidaan myös parantaa palvelinohjelmistojen oikealla suunnittelulla. Salaamalla palvelimen ja selaimen välinen HTTP-liikenne esimerkiksi SSL:n avulla, estetään ulkopuolisia tahoja lukemasta keksejä. Kekseihin voidaan selväkielisen informaation sijasta laittaa vain tunnisteita ja tallettaa varsinainen tieto palvelimelle. Tällöin käyttäjä ei voi muuttaa tietojaan. Tunnisteina voidaan käyttää esimerkiksi riittävän pitkiä satunnaisia (kuitenkin uniikkeja) merkkijonoja. Näin estetään ulkopuolista tahoa 'arvaamasta' keksiä ja esiintymästä jonain toisena käyttäjänä. Keksiä voidaan myös vaihtaa jokaisella palvelimelle tehtävällä pyynnöllä.

Lähdeluettelo

[1] Golden Hamster Interactive, Inc., Magic Cookies Web Delicacy or Half-Baked Blunder? Part 2 Why Use Magic Cookies?, 12.5.1997 [viitattu 15.9.1999]
< http://www.golden-hamster.com/WEBMASTERREPORT3.HTML >
[2] Golden Hamster Interactive, Inc., Magic Cookies Web Delicacy or Half-Baked Blunder? Part 3 Myths and Realities, 19.5.1997 [viitattu 15.9.1999]
< http://www.golden-hamster.com/WEBMASTERREPORT4.HTML >
[3] Kristol David M. & Montulli Lou, rfc2109 HTTP State Management Mechanism, helmikuu 1999 [viitattu 15.9.1999]
< http://www.cis.ohio-state.edu/htbin/rfc/rfc2109.html >
[4] Mayer-Schönberger Viktor, The Internet and Privacy Legislation: Cookies for a Treat? [viitattu 15.9.1999]
< http://www.wvjolt.wvu.edu/wvjolt/current/issue1/articles/mayer/mayer.htm >
[5] Netscape Communications Corporation, Persistent Client State HTTP Cookies Preliminary Specification [viitattu 15.9.1999]
< http://home.netscape.com/newsref/std/cookie_spec.html >
[6] St. Laurent Simon, Cookies, Computing McGraw-Hill, UK, 1998, 512 s [viitattu 15.9.1999]
< http://molly.vabo.cz/docs/Cookies/cover.htm >

Lisätietoja

http://www.oznet.com/oiug/cookies.htm
Anon, Persistent Client State HTTP Cookies, 29.1.1997
yleistä kekseistä: hyödyt, haitat, selainasetukset, header-kuvaus
http://amir.fullerton.edu/msis410/Projects/Group7/cookie.htm
Chao Racine & Huang Joseph, All About Cookies
tietoturvasta, ohjelmoinnista
http://www.golden-hamster.com/WEBMASTERREPORT5.HTML
Golden Hamster Interactive, Inc., Magic Cookies Web Delicacy or Half-Baked Blunder? Part 4 Cookie Netiquette, 26.5.1997
netiketti kekseille
http://developer.netscape.com:80/viewsource/archive/goodman_cookies.html
Goodman Danny, Cookie Recipes Client-Side Persistent Data, joulukuu 1996
yleistä kekseistä.
http://www.junkbusters.com/ht/en/cookies.html
Junkbusters Corporation, How Web Servers' Cookies Threaten Your Privacy, 19.8.1999
tietoturvasta, keksien estäminen yleisimmissä selaimissa
http://prtr-13.ucsc.edu/library/tutorials/cookies/cookies.html
Tobias Rob, Cookie Introduction, 13.5.1997
header-kuvaus
http://www.ciac.org/ciac/bulletins/i-034.shtml
U.S. Department of Energy CIAC (Computer Incident Advisory Capability), I-034: Internet Cookies, 12.3.1998
yleistä, yksityisyydestä ja sen turvaamisesta
http://www.cookiecentral.com/faq/
Whalen David, The unofficial cookie FAQ Version 2.53, 10.5.1999
hyvä FAQ!