Přeskočit na obsah

HTTP cookie

Z Wikipedie, otevřené encyklopedie
Firefox Cookie Manager, nástroj pro prohlížení obsahu cookies ve webovém prohlížeči Mozilla Firefox.

Jako cookie (anglicky koláček, oplatka, sušenka) se v protokolu HTTP označuje malé množství dat, která WWW server pošle prohlížeči, který je uloží na počítači uživatele. Při každé další návštěvě téhož serveru pak prohlížeč tato data posílá zpět serveru. Cookies běžně slouží k rozlišování jednotlivých uživatelů, ukládají se do nich uživatelské předvolby apod. Myšlenku cookies navrhl v 90. letech Lou Montulli, tehdy pracující u firmy Netscape Communications.

Technické podrobnosti

[editovat | editovat zdroj]

Přestože většina prohlížečů cookies podporuje, jiné jednodušší prohlížeče (např. na mobilních zařízeních) je podporovat nemusejí; navíc cookies lze ve většině prohlížečů zakázat. Pokud prohlížeč cookies podporuje, měl by splňovat tyto minimální limity:[1]

  • podpora alespoň 300 cookies[1]
  • alespoň 4 KB na data jedné cookie
  • alespoň 20 cookies na doménu[2]
  • pokud některé prohlížeče nemohou přijmout větší cookie, nesmí „oříznout“ jeho obsah, ale nepřijmout ho jako takové.

Cookies se ukládají na straně klienta (uživatele) jako krátké textové soubory (např. pro Internet Explorer ve Windows XP do adresáře c:\Documents and Settings\Jméno uživatele\Cookies) a to pro každé webové místo (website).

Funkce cookies je definována v RFC 2965 pomocí HTTP hlaviček Set-Cookie (nebo její novější varianty Set-Cookie2) a Cookie. Hlavička Set-Cookie je poslána v odpovědi serveru a obsahuje:

  • název (identifikátor) cookie
  • data cookie (omezená prohlížečem, vyžadována je podpora alespoň pro 4096 byte),
  • dobu platnosti cookie (resp. čas, kdy hodnota vyprší),
  • doména, pro kterou cookie platí,
  • adresář na serveru, pro který cookie platí.

Pokud má prohlížeč alespoň jednu cookie pro daný server (a daný adresář na něm), posílá s každým dotazem danému serveru i hlavičku Cookie, která obsahuje stejná data, která server původně poslal.

V prohlížečích s podporou JavaScriptu lze v tomto jazyku ke cookie přistupovat přes vlastnost document.cookie ve formě: název_1._cookie=hodnota_1._cookie;název_2._cookie=hodnota_2._cookie;…. Páry název:hodnota jsou odděleny středníkem, pokud má hodnota obsahovat středník, je obalena uvozovkami.

Cookie lze nastavovat taktéž na straně serveru (podle možností skriptovacího jazyka) – nastavení hodnoty cookie představuje v podstatě přidání HTTP hlavičky do odpovědi serveru (z toho důvodu musí nastavení proběhnout před vypsání čehokoli na výstup). Například, pro jazyk PHP k tomu slouží funkce setcookie se syntaxí:

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

Bezpečnost a ochrana soukromí

[editovat | editovat zdroj]

Cookies neznamenají žádné nebezpečí pro počítač jako takový. Přesto cookies mohou být nebezpečné pro ochranu soukromí. Navštívený web si totiž může ukládat do cookies jakékoliv informace, které o návštěvníkovi zjistí a může tak postupně zjišťovat zájmy konkrétního návštěvníka - které stránky navštěvuje, jaké informace vyhledává, jak často daný web navštěvuje apod.

Těchto informací se dá posléze i bez vědomí návštěvníka využívat pro cílenou reklamu, statistické vyhodnocování chování návštěvníků, apod.

Tyto informace však lze získávat i bez cookies, proto toto jejich využití nemůže být považováno za zvlášť nebezpečné. Například NSA využívá "evercookie" ke sledování uživatelů.[3]

Cookies lze zneužít zejména tehdy, pokud získá útočník přístup k počítači uživatele (například zavirovaným emailem), neboť cookies na počítači nejsou nijak chráněny. Pak lze předstírat např. cizí identitu. Také lze obejít vícefázové ověření,[4] a tak například ovládnout bankovní účet.

Sušenkový zákon

[editovat | editovat zdroj]

Podle směrnice Evropské unie (provedena zákonem č. 468/2011 Sb., kterým se mění zákon č. 127/2005 Sb., o elektronických komunikacích,[5] zákon o elektronických komunikacích) musí webový server poskytnout uživateli informaci o používání cookies a získat jeho souhlas ještě před tím, než se cookie uloží do uživatelova počítače.[6] Výsledek je ten, že od podzimu roku 2015 většina webů začala zobrazovat informační pruh o cookies (cookie lišta), který lze odstranit potvrzením souhlasu tlačítkem na něm umístěným (i tato funkce obvykle používá cookie, takže informační banner se potom již uživateli nezobrazuje).

V září 2021 Poslanecká sněmovna schválila novelu zákona o elektronických komunikacích, která upravuje používání cookies na webových stránkách. Pokud uživatelé nepovolí souhlas o sbírání informací, nebudou marketingoví analytici moci sledovat, jak se návštěvníci chovají na webu a uživatelům se tak na internetu nebude zobrazovat personalizovaná reklama. Dojde také k rozdílnému zobrazení webových stránek.

Co se týče návštěvníků e‑shopů, vkládání zboží do košíku a dokončení objednávky by mělo jít i bez souhlasu. Pro zajištění možnosti svobodné volby by uživatel měl mít možnost souhlas odmítnout, přičemž odmítnutí by mělo být stejně jednoduché jako přijetí souhlasu. To lze zajistit tak, že tlačítko pro odmítnutí se nachází ve stejné vrstvě cookie lišty, jako tlačítko pro přijetí souhlasu. Tuto povinnost však provozovatelé webů často porušují. Souhlas by měl splňovat podmínky GDPR: aktivní, svobodný a informovaný. Jinými slovy by návštěvník webu nebo e-shopu neměl být nucen k udání souhlasu (například pod podmínkou zablokování přístupu k obsahu webu) a měl by jednoznačně vědět, k čemu budou data používána a komu budou poskytnuta. Zároveň by uživateli webu mělo být umožněno kdykoliv souhlas odvolat.[7]

Alternativy cookies

[editovat | editovat zdroj]

Moderní webové prohlížeče kromě tradičních cookie podporují další technologie podobné cookie.

[editovat | editovat zdroj]

Takzvané Flash cookie jsou spravovány plug-inem Adobe Flash a jsou mimo kontrolu prohlížeče a prohlížeče neumoňují prohlížení a mazání cookies uložených v aplikaci Flash.[8] Tyto cookie bývaly často využívány k obnově hodnot HTTP cookies v případě, že uživatel HTTP cookie smazal.[8] S ústupem Flash plug-inu tato technologie přestává být používána.

HTML 5 DOM storage

[editovat | editovat zdroj]

Moderní prohlížeče obvykle podporují dvě úložiště - local storage a session storage (perzistentní a relační).[9]

Microsoft Silverlight cookies

[editovat | editovat zdroj]

Data uložená v plug-inu Silverlight.

Microsoft Internet Explorer User Data Persistence

[editovat | editovat zdroj]

Umožňuje trvalé ukládání dat v prohlížeči Internet Exporer.

Google Gears data

[editovat | editovat zdroj]

Již nevyvíjené rozšíření, které umožňovalo větší možnosti webových aplikací tím, že mimo jiné umožňovalo ukládat data.

  1. a b http://tools.ietf.org/html/rfc2965
  2. Zabezpečení session proměnných. PHP triky [online]. [cit. 2022-07-11]. Dostupné online. 
  3. 'Tor Stinks' presentation – read the full document. the Guardian [online]. 2013-10-04 [cit. 2022-07-11]. Dostupné online. (anglicky) 
  4. infosecwriteups.com [online]. [cit. 2023-10-18]. Dostupné online. 
  5. Zákony pro lidi. www.zakonyprolidi.cz [online]. [cit. 2022-07-11]. Dostupné online. 
  6. Úřad pro ochranu osobních údajů. Cookies: přechod z principu opt-out na opt-in [online]. 2012-06-15 [cit. 2015-11-20]. Dostupné v archivu pořízeném dne 2015-11-21. 
  7. Informace vyslovení souhlasu s COOKIES [online]. Úřad pro ochranu osobních údajů [cit. 2024-01-02]. Dostupné v archivu pořízeném z originálu dne 2024-01-02. 
  8. Ochrana osobních údajů | Vláda ČR. www.vlada.cz [online]. [cit. 2022-07-11]. Dostupné online. 

Související články

[editovat | editovat zdroj]

Externí odkazy

[editovat | editovat zdroj]