Cookie

Z WikiKnihovna
Přejít na: navigace, hledání

Autor: Jaroslav Kvasnica

Klíčová slova: http, seance, internetový prohlížeč

Synonyma: ---

Související pojmy:

nadřazené - bezpečnost na internetu, internetový prohlížeč, seance
podřazené - ---

Cookie

Cookie (česky koláček, sušenka - české ekvivalenty se ale nepoužívají) je malá textová informace, která se dá uložit na počítač klienta.[1] Cookies se používají zejména pro uložení identifikace uživatele nebo k zapamatování si předchozích voleb klienta. Lze je, jako běžné textové soubory, číst a jsou ukládány v cache paměti prohlížeče, nejčastěji v dočasných souborech.

Analogie ke cookies z běžného života může být například: „když si dáte vyčistit prádlo do čistírny, dostanete do ruky NĚCO, co příště zase předložíte a pracovníci čistírny podle toho poznají, že jste to vy a vydají vám vaše vyčištěné prádlo. Ono NĚCO může být třeba lísteček, na kterém je několikaciferné, vám nic neříkající číslo, které ale pro pracovníky čistírny srozumitelné a smysluplné je.“[2]

Cookies nejsou vhodné k ukládání velkých objemů dat – jsou opatřeny velikostním limitem. To ani není účel, ke kterému byly cookies vytvořeny. Úkolem souboru cookie je informovat server o návratu na konkrétní webovou stránku.[3] Tím server může identifikovat známého uživatele a přizpůsobit mu obsah a načíst volby, které již byly jednou uživatelem vybrány.

Technické parametry

Velikostní limit cookies je 20 cookies na doménu, 4 KB na cookie. [4]

Princip fungování cookies: [5]

1. Pomocí PHP vysvětlíme serveru, že by s nějakou stránkou (tedy odpovědí) měl odeslat do prohlížeče rovněž jednu nebo více cookies,

2. cookies (které obsahují název a hodnotu) se pošlou prohlížeči spolu s požadovanou stránkou (a to v hlavičce),

3. prohlížeč pochopí, že by měl cookies nějak zpracovat a "zapamatuje se" jejich název a hodnotu,

4. když se potom prohlížeč na stejnou stránku (resp. stejný server) vrátí, bude automaticky posílat cookies.


Při odesílání cookies můžeme nastavit nepovinné parametry:[6]

- vypršení platnosti (takové cookies se nazývají cookies seance),

- adresy, na které může daný prohlížeč soubor cookie odesílat,

- cestu (path), kde server potřebuje cookies ke své činnosti,

- parametr secure, který říká, že prohlížeč může odesílat cookies jen při zabezpečeném síťovém spojení.

Bezpečnost

Cookies jako takové nepředstavují žádné nebezpečí. Nemohou obsahovat žádný spustitelný skript (tedy ani viry) a s cookies mohou pracovat (ukládat i číst) skripty jak klientské (např. javascript), tak i serverové (např. PHP). Největší bezpečností riziko představuje právě samotný princip fungování cookies. A tady hlavními problémy jsou viditelnost a modifikovatelnost.

Viditelnost - pro uživatele není problém hodnotu cookie zjistit, což zejména u interních proměnných jako je například ID uživatele apod. není žádoucí.

Modifikovatelnost - hodnoty jsou uloženy na počítači uživatele a uživatel je tedy může bez problémů modifikovat. Pokud se jedná o interní proměnnou (například login apod.) může se jednat o bezpečnostní riziko.[7]

Těmto problémům je možné se vyhnout například šifrováním uložených informací nebo tzv. podepisováním cookies (uložením informace, která pomůže odhalit, jestli byla cookies měněna).

Prohlížeče

Všechny dnešní prohlížeče umějí pracovat se soubory cookies. Prohlížeč, který podporuje cookies musí splňovat tyto požadavky: [8]

- alespoň 300 cookies celkově,

- alespoň 20 cookies na doménu,

- alespoň 4096 bajtů na cookie (data),

- pokud prohlížeč nemůže přijmout větší cookie, nesmí jeho data "oříznout" ale nepřijmout jako celek.

Ukládání cookies je možné v prohlížeči zakázat.

Použitá literatura

  1. JANOVSKÝ, Dušan. Jak psát web : o tvorbě, údržbě a zlepšování stránek [online]. 2010 [cit. 2010-05-30]. Cookies. Dostupné z WWW: <http://www.jakpsatweb.cz/enc/cookies.html>.
  2. PETERKA, Jiří. Archiv.cz : archiv článků a přednášek Jiřího Peterky [online]. 1996 [cit. 2010-05-30]. Cookie. Dostupné z WWW: <http://www.earchiv.cz/a96/a638k130.php3>.
  3. Technická podpora Microsoft [online]. 24. května 2004 [cit. 2010-05-30]. Popis souborů cookie. Dostupné z WWW: <http://support.microsoft.com/kb/260971/cs>.
  4. VRÁNA, Jakub. PHP triky : Weblog o elegantním programování v PHP pro mírně pokročilé [online]. 1. 7. 2005 [cit. 2010-05-30]. Zabezpečení session proměnných. Dostupné z WWW: <http://php.vrana.cz/zabezpeceni-session-promennych.php>.
  5. ZAJÍC, Petr. PHP(52) - Cookies. Linuxsoft.cz [online]. 6. 10. 2004, [cit. 2010-05-30]. Dostupný z WWW: <http://www.linuxsoft.cz/article.php?id_article=436>. ISSN 1801-3805.
  6. WILLIAMS, Hugh E.; LANE, David. PHP a MySQL : Vytváříme webové databázové aplikace. Vydání první. Praha : Computer Press, 2002. 530 s. ISBN 80-7226-760-4.
  7. VONDRA, Tomáš. Fuzzy.cz [online]. 20. 5. 2009 [cit. 2010-05-30]. Bezpečné cookies. Dostupné z WWW: <http://www.fuzzy.cz/cs/clanky/bezpecne-cookies/>.
  8. KRISTOL, D.; MONTULLI, L. IETF Tools [online]. řijen 2000 [cit. 2010-05-30]. Request for Comments: 2965. Dostupné z WWW: <http://tools.ietf.org/html/rfc2965>.