Kontaktovať podporu

Odpovedáme e-mailom, zvyčajne do dvoch dní.

Google reCAPTCHA kontroluje toto podanie na ochranu pred zneužitím; údaje sa prenášajú spoločnosti Google. Skript sa načíta až pri otvorení tohto formulára.

← Všetky príspevky

Počítanie bez súboru cookie

O obsahu a jeho overovaní

V tomto článku

Počítadlo návštevnosti má jednu nepríjemnú úlohu: musí rozlíšiť dve návštevy. Ak to nedokáže, jeden človek, ktorý desaťkrát znovu načíta stránku, vyzerá ako desať ľudí a číslo na webe je výmysel.

Bežným riešením je súbor cookie. Tento web ho nepoužíva. Tu je vysvetlenie, čo robí namiesto toho a prečo si poctivé znenie tejto vety vyžiadalo istú prácu.

Súbor cookie, o ktorý nikto nežiadal

Až do tohto roka každá požiadavka na počítadlo spúšťala reláciu PHP. Je to jeden riadok kódu, vyzerá neškodne a znamenalo to, že každý návštevník každého webu používajúceho počítadlo Stats4U dostal súbor cookie relácie – nastavovali sme ho my, na cudzej stránke, bez toho, aby to ktorákoľvek strana zamýšľala.

vstupyIP · UA · IDdátum · denná soľhash16 bajtovuchovávanie2 dnisamotná adresa sa nikdy nezapisujekeď soľ zmizne, nikto nedokáže deň prepočítať — ani my

Relácia sa nikdy na nič nepoužívala. Dôkaz sa našiel ľahko, len čo sa niekto pozrel: adresár na ukladanie relácií obsahoval nula súborov. Celé roky sa na cudzích weboch nastavoval súbor cookie na uchovávanie údajov, ktoré sa nikdy nezapisovali ani nečítali.

Z mechanizmu počítania je preč. Relácia sa teraz spúšťa iba vtedy, keď niekto vytvára alebo prestavuje počítadlo – teda pri úkone, ktorý na tomto webe vykonal zámerne.

Čo ho nahradilo

Návštevníci sa rozlišujú pomocou hashu. Vstupuje doň päť vecí:

  • IP adresa
  • user agent
  • ID počítadla
  • dnešný dátum
  • tajomstvo meniace sa každý deň

Výsledkom je 16 bajtov a práve tie sa ukladajú. Uchovávajú sa dva dni a potom sa odstránia. Samotná IP adresa sa v žiadnom okamihu nikdy nezapisuje.

Dve návštevy tej istej osoby v ten istý deň na tom istom počítadle vytvoria tých istých 16 bajtov, takže druhá sa rozpozná ako opakovaná. Zajtra tá istá osoba vytvorí niečo úplne iné, pretože sa zmenil dátum aj tajomstvo. To je celý mechanizmus.

Prečo sa tajomstvo obmieňa

Toto je časť, ktorú možno ľahko urobiť nesprávne, a tu bola nesprávna až do tohto roka.

Stará verzia používala jedno trvalé tajomstvo. Aj tak vytvárala rôzne hashe pre rôznych ľudí, čo znie dobre. Znamenalo to však, že ktokoľvek s týmto tajomstvom mohol vziať podozrivú IP adresu a znovu vypočítať jej hash pre ľubovoľný deň v archíve – a premeniť tak tabuľku anonymných 16-bajtových hodnôt späť na záznam toho, kto čo navštívil, až tak ďaleko do minulosti, kam siahali údaje.

Tajomstvo sa teraz mení denne a staré sa po dvoch dňoch odstraňujú. Keď sa to stane, výpočet už nedokáže vykonať nikto. Ani prevádzkovateľ tohto webu, a o to ide: ochrana, ktorá závisí od dobrého správania prevádzkovateľa, nie je ochranou, ale sľubom.

Rozlíšenie obrazovky a poučenie o odstraňovaní vecí

Rozlíšenie obrazovky sa kedysi zbieralo. Je to klasický signál na vytváranie digitálneho odtlačku zariadenia a nestálo za svoju cenu, preto bolo odstránené zo skriptu, ktorý beží na stránke s vloženým počítadlom.

To nestačilo a každému, kto vytvára veci pre cudzie weby, sa oplatí poznať dôvod. Skript sa poskytuje so sedemdňovou platnosťou vyrovnávacej pamäte, takže staré kópie zostali v prehliadačoch návštevníkov aktívne ešte týždeň po zmene. Horšie je, že niektoré weby na skript vôbec neodkazujú – pred rokmi vložili jeho kópiu do vlastných stránok a tá bude navždy robiť presne to, čo robila v deň vloženia.

Rozlíšenie teda prichádzalo ďalej. Opravou bolo zabezpečiť, aby server hodnotu odmietal bez ohľadu na to, kto ju posiela. Odstránenie zberu údajov z klienta zastaví iba nových klientov. Odstránenie zo servera ho zastaví okamžite.

Overenie

V podobe tvrdenia nemá nič z toho veľkú hodnotu, preto je tu príkaz:

  • curl -sk -D - -o /dev/null 'https://www.stats4u.net/index.php?action=pic&s4uid=1' | grep -i set-cookie

Žiadny výstup znamená, že sa nenastavil žiadny súbor cookie.

Na záver rovnaké upozornenie ako vždy: toto opisuje, čo softvér robí. Či tým spĺňa pravidlá platné v danej krajine, je otázka pre niekoho, kto je kvalifikovaný na ňu odpovedať, a toto takou odpoveďou nie je.

Aktualizácia, 11. septembra 2026: Od 27. augusta 2026 skript opäť čítal rozlíšenie obrazovky, šírku okna prehliadača a pomer pixelov na každom webe, ktorý ho mal vložený. Od 11. septembra 2026 to robí iba tam, kde to vlastník webu zapne pomocou data-screen="1". Bez tohto atribútu aktuálny skript nečíta ani jeden z týchto troch údajov a server ich už neukladá ani zo starších kópií.

Reklama