HTTP kola?i?

С Википеди?е, слободне енциклопеди?е

HTTP cookie , takođe i cookie ili kola?i? je jednostavna tekstualna datoteka koja se ?uva u veb-pregleda?u dok korisnik pregleda neki veb-sajt . Kada korisnik u budu?nosti pregleda taj isti sajt, sajt mo?e "izvu?i" ili dohvatiti podatke koji su sa?uvani u kola?i?u, kako bi bio obave?ten o prethodnoj korisni?koj aktivnosti. Kola?i?i mogu sadr?ati informacije o tome koje je stranice korisnik posetio, podatke o prijavi, pa i koju dugmad je korisnik kliknuo. Ovi podaci mogu ostati u kola?i?u mesecima, ?ak i godinama.

Kola?i?i se ponekad me?aju s programima - međutim, oni su samo komadi? podataka - i sami ne mogu ni?ta uraditi. Ne mogu sadr?ati viruse niti instalirati maliciozni softver na ra?unaru na kojem se koriste. Međutim, kola?i?i za pra?enje ( tracking cookies ) i posebno kola?i?i tre?ih strana ?esto se koriste kao na?in da se na?ine dugoro?ni zapisi o korisnikovoj istoriji pregledanja.

Ostale vrste kola?i?a vr?e funkcije nu?ne za moderan Veb . Mo?da su najva?niji autentifikacijski kola?i?i, pomo?u kojih server zna da li je korisnik prijavljen ili ne. Takođe zna i pod kojim je ra?unarom korisnik prijavljen. Sigurnost ove vrste kola?i?a uglavnom zavisi od sigurnosti veb-sajta koji ?alje kola?i?, pregleda?a korisnika, i od toga jesu li podaci u kola?i?u ?ifrovani . Ako je sigurnost niska, haker mo?e pro?itati podatke u kola?i?u, pa ih mo?e iskoristiti tako da dobije pristup podacima korisnika, ili se mo?e prijaviti na veb-sajt pod korisni?kim imenom i lozinkom.

Vrste kola?i?a [ уреди | уреди извор ]

Sesijski kola?i? [ уреди | уреди извор ]

Sesijski kola?i? postoji u privremenoj memoriji dok korisnik pregledava i navigira kroz site. Nastaje kada prilikom stvaranja kola?i?a nije određen datum njegova isteka. Internetski preglednici obi?no izbri?u sesijski kola?i? kada ih korisnik zatvori.

Trajni kola?i? [ уреди | уреди извор ]

Trajni kola?i?, kao ?to im i ime govori, po trajanju "nadma?uje" onaj sesijski. Ako kola?i? ima svoj rok trajanja (Max-Age) pode?en na 1 godinu, tada bi se unutar godinu dana serveru slala izvorna vrijednost u kola?i?u, svaki put kada bi korisnik posjetio server. Ovo se mo?e koristiti za snimanje va?nih djeli?a informacija poput toga kako je korisnik izvorno dospio na site. Zbog ovog razloga zovu se i kola?i?i za pra?enje ( tracking cookies ).

HTTPS kola?i? [ уреди | уреди извор ]

HTTPS kola?i? mo?e se koristiti samo na ?ifriranim HTTPS stranicama. Sigurniji je od obi?nog kola?i?a ( secure cookie - sigurnosni kola?i?) i ote?ava njegovu "krađu". (Vidi sljede?i podnaslov.)

HttpOnly [ уреди | уреди извор ]

Vrstu kola?i?a pod imenom HttpOnly podr?ava ve?ina modernih preglednika. Sesijski HttpOnly kola?i? koristi se samo prilikom prenosa HTTP (ili HTTPS) zahtjeva. Na taj na?in zabranjuje pristup od strane ne-HTTP API -ja (kao ?to je JavaScript ). Ova zabrana umanjuje, no ne eliminira u potpunosti, problem "krađe kola?i?a" preko cross-site scripting -a ( XSS ). Rije? je o sigurnosnoj rupi koju haker mo?e iskoristiti tako ?to ubaci malicioznu skriptu na neku internetsku stranicu koju korisnici posje?uju. Tako se mo?e desiti i krađa kola?i?a.

Kola?i?i tre?ih strana [ уреди | уреди извор ]

Kola?i?i tzv. prve strane su kola?i?i pode?eni s istom domenom (ili pod-domenom) koja je prikazana na adresnoj traci internetskog preglednika. S kola?i?ima tre?ih strana je suprotno - pode?eni su s domenama druk?ijim od one koju mo?ete vidjeti u adresnoj traci.

Internetske stranice mogu imati sadr?aj s domene neke tre?e strane, npr. oglas koji pokre?e www.reklame.com Opcije u ve?ini modernih preglednika omogu?uju blokiranje kola?i?a tre?ih strana.

Uzmimo jedan primjer. Pretpostavimo da je korisnik posjetio site www.primjer1.com koji ima reklamu - i ta reklama postavlja kola?i? s domenom ad.foxytracking.com . Kada korisnik kasnije posjeti www.primjer2.com , druga reklama mo?e postaviti drugi kola?i? s domenom ad.foxytracking.com . Kona?no, oba kola?i?a bit ?e poslana ogla?iva?u prilikom u?itavanja reklama ili prilikom posje?ivanja njegovog internetskog sitea. Ogla?iva? ove kola?i?e mo?e koristiti u svrhu izgrađivanja povijesti surfanja korisnika preko svih siteova na kojima ogla?iva? ima "trag".

Zombijevski kola?i?i [ уреди | уреди извор ]

To su kola?i?i koji se ponovno automatski kreiraju nakon ?to ih korisnik izbri?e, a ?to se mo?e posti?i skriptom koja sprema sadr?aj kola?i?a i na druge lokacije.

Namjena [ уреди | уреди извор ]

Upravljanje sesijama [ уреди | уреди извор ]

Kola?i?i se mogu koristiti za odr?avanje podataka povezanih s korisnikom. Omogu?ivanje korisniku da se prijavi na internetski site je primjer ?este primjene kola?i?a. To radi tako ?to server prvo po?alje kola?i? sa jedinstvenim sesijskim identifikatorom. Korisnik se onda prijavi s popunjenim podacima, internetska aplikacija provodi autentifikaciju sesije i dopu?ta korisniku pristup servisima.

Kola?i?i su također i na?in da se implementira "ko?arica za kupnju" - virtualni uređaj u koji korisnici mogu pohranjivati popis stvari koje ?ele kupiti. Aplikacije tih ko?arica obi?no spremaju sadr?aj ko?arice u serverovu databazu, umjesto u sam kola?i?. Server ?alje kola?i? s jedinstvenim sesijskim identifikatorom. Internetski preglednik ?e sesijski identifikator slati natrag sa svakim kasnijim posjetom.

Personalizacija [ уреди | уреди извор ]

Kola?i?i se mogu koristiti za pam?enje informacija o korisniku koji je posjetio internetski site. Ti se podaci mogu iskoristiti da se u budu?nosti prika?e neki relevantan, korisniku prilagođen sadr?aj. Tako server mo?e poslati kola?i? koji sadr?ava korisni?ko ime kori?teno zadnji put tijekom prijave, tako da polje s imenom mo?e biti popunjeno u budu?im posjetima.

Brojni internetski siteovi koriste kola?i?e za personalizaciju - koja bi odgovarala korisnikovim postavkama i ukusu. Podaci o postavkama se mogu unijeti preko neke web forme te ih se poslati serveru . Server enkodira postavke u kola?i?u i ?alje ga natrag pregledniku. Ovako, svaki put kada korisnik pristupi stranici, serveru se ?alje kola?i? gdje su spremljene postavke, te mo?e personalizirati stranicu u skladu s istima. Na primjer, Wikipedija omogu?uje prijavljenim korisnicima da odaberu skin (prilagođeno grafi?ko su?elje) koji im se najvi?e sviđa; u pro?losti je Google dopu?tao korisnicima, pa ?ak i onim neprijavljenima, da odrede koliko rezultata potrage po stranici ?ele vidjeti.

Pra?enje [ уреди | уреди извор ]

Kola?i?i za pra?enje mogu se koristiti za pra?enje korisnikovog surfanja. Ovo se djelomi?no uspje?no mo?e uraditi kori?tenjem IP adrese kompjutera s kojeg korisnik pristupa, no kola?i?i omogu?uju ve?u preciznost. Evo kako mehanizam funkcionira:

  1. Ako korisnik po?alje zahtjev stranici kakvog internetskog sitea, ali njegov zahtjev ne sadr?i kola?i?, server pretpostavlja da je ovo prva stranica koju je korisnik posjetio; server potom stvara slu?ajni slijed znakova i ?alje ih kao kola?i?
  2. Nakon ovoga, preglednik ?e serveru automatski slati kola?i? svaki put kada se po?alje zahtjev za novu stranicu sitea; server ?alje stanicu, te spremi URL tra?ene stranice, datum/vrijeme zahtjeva, i kola?i? u log (zapisnu) datoteku.

Implementacija [ уреди | уреди извор ]

Kao ?to je prije spomenuto, kola?i?i su proizvoljni dijelovi podataka koje odabire server i ?alje pregledniku , a preglednik ih nepromijenjene vra?a serveru . Bez kola?i?a, svako bi dohva?anje stranice ili neke njezine komponente bio izoliran događaj, uglavnom nepovezan za svim drugim pregledima stranica istog sitea.

Od preglednika se o?ekuje da mo?e spremiti barem 300 kola?i?a velikih 4 kb, te barem 20 kola?i?a istoga servera ili domene.

Postavljanje kola?i?a [ уреди | уреди извор ]

Preglednik zahtijeva stranicu od servera slanjem obi?no kratkog teksta koji se naziva HTTP zahtjev . Na primjer, kako bi korisnik pristupio stranici http://www.primjer.org/index.html, preglednik se spoji na server www.primjer.org, te mu ?alje zahtjev koji izgleda poput ovoga:

GET /index.html HTTP/1.1
Host: www.primjer.org

preglednik
-------→
server

Server odgovara slanjem zahtijevane stranice kojem prethodi sli?an paketi? s tekstom, koji se zove HTTP odgovor . Paketi? mo?e sadr?avati linije u kojima se tra?i od preglednika da pohrani kola?i?.

HTTP/1.1 200 OK
Content-type: text/html
Set-Cookie: name=value
Set-Cookie: name2=value2; Expires=Wed, 09-Jun-2021 10:18:14 GMT
 
(sadr?aj stranice)

preglednik
←-------
server

Server ?alje linije stavke Set-Cookie samo ako ?eli da preglednik pohrani kola?i?e. Set-Cookie je uputa pregledniku da pohrani kola?i? te da ga ?alje natrag u budu?im zahtjevima serveru. Uputa je podlo?na atributu koji određuje "rok trajanja" kola?i?a. Primjer: preglednik zahtijeva stranicu http://www.primjer.org/post.html tako ?to serveru www.primjer.org ?alje zahtjev poput ovog:

GET /post.html HTTP/1.1
Host: www.primjer.org
Cookie: name=value; name2=value2
Accept: */*
 

preglednik
-------→
server

Ovo je zahtjev za drugom - druga?ijom stranicom od istog servera, i razlikuje se od prvog zahtjeva po tome ?to sadr?i liniju koju je server prethodno poslao pregledniku. Na ovaj na?in, server zna da je ovaj zahtjev povezan s prija?njim. Server potom odgovara slanjem zahtijevane stranice i ponekad također ?alje jo? kola?i?a.

Vrijednost kola?i?a mo?e izmijeniti server slanjem nove linije - Set-Cookie: name=newvalue u odgovoru na zahtjev. Preglednik zatim jednostavno zamijeni staru vrijednost s novom.

U slu?aju da internetski preglednik to podr?ava, kola?i?, osim servera, mo?e postaviti i skripta - napisana u programskom jeziku JavaScript . U JavaScriptu se za ovu svrhu koristi objekt document.cookie . Npr., document.cookie = "temperatura=20" stvara kola?i? imena temperatura i vrijednosti 20 .

Postavke u preglednicima [ уреди | уреди извор ]

Moderni preglednici redovito podr?avaju kola?i?e, ali i dopu?taju svojim korisnicima da ih onemogu?e - ?esto radi privatnosti . Dakle, naj?e??e opcije u vezi kola?i?a su:

  1. Kompletno onemogu?avanje ili dopu?tanje kola?i?a - tako da se uvijek blokiraju ili prihva?aju.
  2. Katkad, cookie manager koji dopu?ta korisnicima uvid u kola?i?e i selektivno brisanje onih ?to su trenutno pohranjeni u pregledniku.

Ve?ina preglednika omogu?uje istovremeno brisanje ne samo kola?i?a, ve? i lozinki, fraza kori?tenih u pretragama (tipa fraze utipkane na Googleu ) i sli?no.

Međutim, valja naglasiti da onemogu?avanje svih kola?i?a uvelike smanjuje funkcionalnost ve?ine stranica, te se ona obi?no svede na minimum.

Mozilla Firefox [ уреди | уреди извор ]

U novijim verzijama Mozille Firefox postavke u vezi kola?i?a mogu se na?i na kartici Privacy, u odjeljku History. One su sljede?e:

  • Accept cookies from site - omogu?uje kola?i?e
    • Accept third-party cookies - prihva?a kola?i?e tre?ih strana
  • Keep until ... - mogu?e je odrediti dokad zadr?ati kola?i?e, npr. dok je Firefox otvoren

Postoji i gumb Exceptions... (engl. izuzeci) na kojima je mogu?e navesti koje ?e kola?i?e Firefox uvijek prihva?ati ili pak uvijek blokirati. Postoji ve? definiran popis blokiranih kola?i?a, koji imaju veze sa zlonamjernih internetskim stranicama.

Internet Explorer [ уреди | уреди извор ]

U Internet Exploreru pod Internet Options postoji kartica Privacy, sa kliza?em kojim se mo?e odrediti kako ?e preglednik postupati sa kola?i?ima. Postoji 6 razina, a navest ?emo ih po?ev?i od najstro?e do najliberalnije.

  • Block All Cookies - blokira sve kola?i?e, a one koji se ve? nalaze na kompjuteru siteovi ne mogu pro?itati
  • High - visoka sigurnost
  • Medium High - srednje visoka sigurnost
  • Medium Low - ni?a srednja sigurnost
  • Low - niska sigurnost
  • Allow All Cookies - prihva?a sve kola?i?e