HTTP cookie

z Wikipédie, slobodnej encyklopédie
Prejsť na: navigácia, hľadanie

Ako cookie (anglicky koláčik, oblátka, sušienka) sa v protokole HTTP označuje malé množstvo dát, ktoré WWW server pošle prehliadaču, ktorý ho uloží na počítači užívateľa. Pri každej ďalšej návšteve toho istého servera potom prehliadač tieto dáta posiela späť serveru. Cookies bežne slúži na rozlišovanie jednotlivých užívateľov, ukladajú sa do nich používateľské predvoľby a pod. Myšlienku cookies navrhol v 90. rokoch Lou Montulli, vtedy pracujúci u firmy Netscape Communications. Názov cookie - sušienka asociuje zvyklosť zo Spojených štátov alebo Veľkej Británie ponúknuť účastníkom určitého záujmového spolku alebo skupiny ich obľúbenú sušienku pre vytvorenie príjemnejšej atmosféry.

Technické podrobnosti[upraviť | upraviť zdroj]

Hoci väčšina prehliadačov cookies podporuje, iné jednoduchšie prehliadače (napr. na mobilných zariadeniach) ich podporovať nemusia; navyše cookies možno vo väčšine prehliadačov zakázať. Ak prehliadač cookies podporuje, mal by spĺňať tieto minimálne limity:

  • Podpora aspoň 300 cookies[1]
  • Aspoň 4 KiB na dáta jednej cookie
  • Aspoň 20 cookies na doménu[2]
  • Ak niektoré prehliadače nemôžu prijať väčší cookie, nesmie "orezať" jeho obsah, ale neprijať ho vôbec

Cookies sa ukladajú na strane klienta (užívateľa) ako krátke textové súbory (napr. Pre Internet Explorer vo Windows XP do adresára c:\Documents and Settings\Meno používateľa\ Cookies) a to pre každé webové miesto (website).

Funkcia cookies je definovaná v RFC 2965 pomocou HTTP hlavičiek Set-Cookie (alebo jej novšieho variantu Set-Cookie2) a Cookie. Hlavička Set-Cookie je poslaná v odpovedi servera a obsahuje:

  • Názov (identifikátor) cookie
  • Dáta cookie (obmedzené prehliadačom, vyžadovaná je podpora aspoň pre 4096 bajtov),
  • Dobu platnosti cookie (resp. čas, kedy hodnota vyprší),
  • Doména, pre ktorú cookie platí,
  • Adresár na serveri, pre ktorý cookie platí.

Ak má prehliadač aspoň jednu cookie pre daný server (a daný adresár na ňom), posiela s každým dotazom danému serveru aj hlavičku Cookie, ktorá obsahuje rovnaké dáta, ktorá server pôvodne poslal.

V prehliadačoch s podporou JavaScriptu možno v tomto jazyku ku cookie pristupovať cez vlastnosť document.cookie vo forme: názov_1._cookie = hodnota_1._cookie; názov_2._cookie = hodnota_2._cookie; .... Páry názov: hodnota sú oddelené bodkočiarkou, ak má hodnota obsahovať bodkočiarku, je obalená úvodzovkami.

Cookie možno nastavovať taktiež na strane servera (podľa možností skriptovacieho jazyka) - nastavenie hodnoty cookie predstavuje v podstate pridanie HTTP hlavičky do odpovede serveru (z toho dôvodu musí nastavenie prebehnúť pred vypísaním čohokoľvek na výstup). Napríklad, pre jazyk PHP k tomu slúži funkcia setcookie so syntaxou:

Bool setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

Bezpečnosť a ochrana súkromia[upraviť | upraviť zdroj]

Cookies neznamenajú žiadne nebezpečenstvo pre počítač. Napriek tomu cookies môžu byť nebezpečné pre ochranu súkromia. Navštívený web si totiž môže ukladať do cookies akékoľvek informácie, ktoré o návštevníkovi zistí a môže tak postupne zisťovať záujmy konkrétneho návštevníka. Ktoré stránky navštevuje, aké informácie vyhľadáva, ako často daný web navštevuje a pod.

Týchto informácií sa dá neskôr aj bez vedomia návštevníka využívať pre cielenú reklamu, štatistické vyhodnocovanie správania návštevníkov, a pod.

Tieto informácie však možno získavať aj bez cookies, preto toto ich využitie nemôže byť považované za obzvlášť nebezpečné.

Cookies možno zneužiť najmä vtedy, ak získa útočník prístup k počítaču používateľa, pretože cookies na počítači nie sú nijako chránené. Potom možno predstierať napr. cudziu identitu.

Referencie[upraviť | upraviť zdroj]

  1. http://tools.ietf.org/html/rfc2965
  2. http://php.vrana.cz/zabezpeceni-session-promennych.php

Externé odkazy[upraviť | upraviť zdroj]

Zdroj[upraviť | upraviť zdroj]

Tento článok je čiastočný alebo úplný preklad článku HTTP cookie na českej Wikipédii.