Cookies: čo si o vás web pamätá, ako dlho a kto to rozhoduje

Schéma cookies: hlavička Set-Cookie zo servera a Cookie pri ďalšej požiadavke a porovnanie cookies prvej a tretej strany
Grafika: WWWN (vlastné dielo)




Lišta „Tento web používa cookies“ je dnes taká samozrejmá, že ju väčšina ľudí odklikne bez čítania. Čo vlastne povoľujete? Cookies nie sú programy, nemôžu nič spustiť a samy osebe neobsahujú vírusy. Sú to krátke kúsky textu. Zaujímavé je, kto ich ukladá, na ako dlho a kam ich prehliadač potom posiela.

Prečo vôbec vznikli

Protokol HTTP je bezstavový (podrobnejšie v článku HTTP bez záhad): server si medzi dvoma požiadavkami nič nepamätá. Pre čítanie dokumentov to nevadilo, no v roku 1994 riešil programátor Netscape Lou Montulli internetový obchod, ktorý si potreboval pamätať obsah košíka. Navrhol, aby server mohol prehliadaču „dať lístok“ a prehliadač ho pri každej ďalšej návšteve vrátil. Názov si požičal od pojmu magic cookie, ktorým programátori označovali malý údaj odovzdávaný medzi programami. Norma, ktorou sa cookies riadia dnes, je RFC 6265 z roku 2011; IETF ju aktualizuje novou verziou, ktorá zahŕňa aj neskôr pridané pravidlá.

Ako cookie vzniká a putuje

Server pošle v odpovedi hlavičku, napríklad:

Set-Cookie: kosik=3; Max-Age=86400; Path=/; Secure; HttpOnly; SameSite=Lax

Prehliadač si dvojicu kosik=3 uloží a pri každej ďalšej požiadavke na ten istý web ju pošle späť v hlavičke Cookie: kosik=3. To je celý mechanizmus. Server tak zistí, že ide o toho istého návštevníka, a podľa uloženej hodnoty si dohľadá košík, prihlásenie alebo nastavenie jazyka. Pri prihlasovaní sa do cookie zvyčajne neukladá heslo, ale náhodný identifikátor relácie.

Nastavenia, ktoré rozhodujú

  • Expires / Max-Age – dokedy cookie platí. Bez nich ide o reláčnu cookie, ktorá zmizne po zatvorení prehliadača (hoci moderné prehliadače s obnovou relácie ju niekedy ponechajú). Chrome a ďalšie prehliadače dnes obmedzujú platnosť na najviac 400 dní, ako navrhuje pripravovaná aktualizácia normy.
  • Domain a Path – pre ktoré adresy sa cookie posiela. Bez Domain platí len pre presný hostiteľ, ktorý ju nastavil.
  • Secure – posiela sa len cez HTTPS.
  • HttpOnly – JavaScript na stránke ju neprečíta. To výrazne sťažuje krádež prihlásenia pri útoku typu XSS.
  • SameSite – či sa cookie pošle aj vtedy, keď požiadavka vznikla na inom webe. Strict nie, Lax len pri bežnom prechode cez odkaz, None vždy (vyžaduje Secure). Chrome od roku 2020 považuje cookie bez tohto atribútu za Lax, čo potichu ukončilo veľkú časť útokov CSRF.

Z našej praxe pri správe webov: ak sa niekto nevie prihlásiť do administrácie a „inde to ide“, takmer vždy ide o cookie – nesúlad adresy s www a bez neho, HTTP namiesto HTTPS alebo prehnane prísne nastavenie prehliadača.

Prvá a tretia strana

Cookie prvej strany nastavuje web, ktorý máte otvorený. Cookie tretej strany nastavuje iná doména, ktorej obsah je do stránky vložený – reklamný systém, tlačidlo sociálnej siete, prehrávač videa. Keď je ten istý reklamný systém vložený na tisícoch webov, vidí vaše návštevy na všetkých z nich. Práve tu vzniká sledovanie naprieč webmi, kvôli ktorému majú cookies zlú povesť.

Safari blokuje cookies tretej strany predvolene od roku 2020 a Firefox ich od roku 2022 predvolene oddeľuje pre každý web zvlášť. Google roky ohlasoval, že ich v Chrome vypne, no v roku 2024 od plánu ustúpil a v roku 2025 upustil aj od celoplošnej výzvy, ktorou sa mal používateľov pýtať. V Chrome tak zostávajú povolené, pokiaľ si ich sami nevypnete.

Cookies nie sú jediná pamäť

Cookies majú jednu zvláštnosť: prehliadač ich automaticky posiela so každou požiadavkou na daný web, vrátane obrázkov a štýlov. Čím viac a čím väčšie cookies web nastaví, tým viac zbytočných bajtov putuje sieťou. Na údaje, ktoré server nepotrebuje, preto existujú iné úložiská. localStorage a sessionStorage si pamätajú dvojice kľúč–hodnota len v prehliadači a na server sa samy neposielajú; IndexedDB zvládne aj väčšie objemy dát. Webové aplikácie si v nich pamätajú napríklad rozpracovaný text alebo tmavý režim.

Pre ochranu súkromia z toho plynie dôležitá vec: zmazať cookies ešte neznamená zmazať všetko. Kto chce začať naozaj nanovo, má v nastaveniach prehliadača vymazať „súbory cookie a údaje stránok“, nie iba cookies. A sledovať sa dá aj úplne bez ukladania – podľa kombinácie vlastností prehliadača, písiem a obrazovky, čomu sa hovorí fingerprinting.

Prečo sa web pýta na súhlas

Lištu nevyžaduje technológia, ale právo. Smernica EÚ o súkromí a elektronických komunikáciách (2002/58/ES, tzv. ePrivacy) v článku 5 ods. 3 hovorí, že ukladať informácie do zariadenia používateľa a čítať ich možno len s jeho súhlasom. Výnimkou je to, čo je nevyhnutné na poskytnutie služby, o ktorú používateľ sám požiadal – košík, prihlásenie, zapamätanie si odmietnutia. Na Slovensku smernicu preberá zákon o elektronických komunikáciách. Pravidlo navyše neplatí len pre cookies, ale pre akékoľvek ukladanie do zariadenia, teda aj pre localStorage.

Európsky výbor pre ochranu údajov vo svojich usmerneniach k súhlasu zdôrazňuje, že súhlas musí byť dobrovoľný a odmietnuť má byť rovnako ľahké ako súhlasiť. Lišta, kde je „Prijať všetko“ veľké zelené tlačidlo a odmietnutie schované v tretej obrazovke, tomuto duchu nezodpovedá – aj keď ju vidíte na mnohých veľkých weboch.

Ako sa pozrieť, čo o vás web ukladá

V Chrome aj Firefoxe otvorte nástroje pre vývojárov (F12), záložku Application, resp. Úložisko, a položku Cookies. Uvidíte názov, hodnotu, doménu, dátum vypršania aj spomínané atribúty. Odporúčame to skúsiť na spravodajskom webe pred kliknutím na súhlas a po ňom – rozdiel v počte domén býva výmluvnejší než akékoľvek zásady ochrany súkromia. Norma RFC 6265 mimochodom od prehliadačov žiada podporu aspoň 4 096 bajtov na jednu cookie a aspoň 50 cookies na doménu, takže priestoru na zapamätanie je dosť.

Zdroje

About The Author

Related posts

Leave a Reply

Your email address will not be published. Required fields are marked *