You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

TDAT2004 Datakommunikasjon med nettverksprogrammering. Oppgave nummer 5, Informasjonskapsler (cookies). Deltakere er Olav Reppe Husby, Magnus Storhaug Hammer og Sindre Hammerø Kroknes. 



1. Innledning

Informasjonskapsler, eller cookies som de også kalles, hører hjemme i applikasjonslaget. En informasjonskapsel er en liten mengde data som sendes fra en nettside og som lagres på brukerens datamaskin, de er designet for å ha en pålitelig mekanisme for å huske tilstandsinformasjon eller å lagre informasjon om brukerens aktiviteter på internett (knapper som er klikket på, innlogging, eller hvilke nettsider som har blitt besøkt).

Historien for informasjonskapsler går helt tilbake til juni 1994, da Lou Montulli (som fikk ideen med informasjonskapsler) jobbet for Netscape1. Netscape var leid inn av MCI for å lage et system for e-handel, men produkteierne ville ikke lagre uferdige transaksjoner på serveren, dette løste de ved å lagre tilstanden på brukerens datamaskin1. Allerede april 1995 begynte en gruppe i IETF å jobbe med å standardisere informasjonskapsler, i februar 1997 ble spesifikasjonen RFC 2109 ferdigstilt2. I oktober 2000 ble RFC 2109 erstattet med RFC 29653. En definitiv spesifikasjon på hvordan informasjonskapsler skal brukes ble gitt ut april 20114, som RFC 62655. I dag gjør IETF vedtak rundt standarden om informasjonskapsler.



2. Ønsket funksjonalitet  

Oppgaven man skal løse er at man ønsker å lagre små mengder data hos klienten for å huske brukerens tilstand eller aktivitet på nettsiden. Og slik at man slipper å lagre absolutt all data på serversiden. Det kan være informasjon som brukernavn og passord(kryptert), hvilke knapper bruker har trykket på, og tidligere utfylte skjema. Man kan også lagre brukerens preferanser, som hvilket språk man vil ha, slik at man slipper å velge det hver gang man bruker nettsiden.

Informasjonskapsler brukes ofte til sessjonshåndtering, for å fortelle serveren om brukeren er logget inn, og hvilken bruker det er. De blir også brukt for å lagre informasjon om brukere for bruk med målrettet reklame.


3. Virkemåte

For å opprette og endre informasjonskapsler benyttes HTTP headeren Set-Cookie. Når en nettleser mottar en slik forespørsel oppretter den en informasjonskapsel og sender den med alle fremtidige forespørsler til serveren.

Set-Cookie har mange parametere, men bare navn/verdi-par er påkrevd.

 

HTTP/1.0 200 OK

Set-Cookie: tekst=hei

 

Informasjonskapselens utløpsdato settes med enten Expires eller Max-Age. Expires settes med HTTP-date timestamp, og Max-Age med tid i sekunder. Utløpsdato bestemmer når informasjonskapselen blir slettet fra nettleseren. Om utløpsdato ikke er satt slettes informasjonskapselen når sesjonen avsluttes, når nettleser lukkes.


Domain parameteren bestemmer hvilke verter informasjonskapselen skal sendes til.

Path parameteren spesifiserer en sti som må eksistere i URL for at informasjonskapselen skal sendes.

Secure setter et flagg som indikerer at informasjonskapselen kun skal sendes kryptert, med HTTPS.

HttpOnly flagget gjør at informasjonskapselen ikke er tilgjengelig for klientkode som JavaScript.

 

En informasjonskapsel identifiseres ved name, domain og path atributtene. For å endre en informasjonskapsel må en ny Set-Cookie header sendes, med samme name, domain og path. 


Bruk av cookies:


Lese cookie: It’s Learning eksempel


Sette cookie: It’s Learning eksempel

Wireshark pakkefangst:




4. Referanser

Hvor finner man mer aktuelt lesestoff om dette temaet?

http://www.whatarecookies.com/ 

https://www.ntnu.edu/cookies

https://kb.iu.edu/d/agwm


Referanseliste:

  1. http://www.nytimes.com/2001/09/04/business/giving-web-a-memory-cost-its-users-privacy.html

  2. https://tools.ietf.org/html/rfc2109

  3. https://tools.ietf.org/html/rfc2965

  4. http://www.thesecuritypractice.com/the_security_practice/2011/03/http-state-management-mechanism-to-proposed-standard.html

  5. https://tools.ietf.org/html/rfc6265



  • No labels