Contactați asistența

Răspundem prin e-mail, de obicei în două zile.

Google reCAPTCHA verifică această trimitere împotriva abuzurilor; date sunt trimise către Google. Scriptul se încarcă doar când acest formular este deschis.

← Toate articolele

Numărare fără cookie

Un contor de vizitatori are o sarcină incomodă: trebuie să deosebească două vizite. Dacă nu poate, atunci o persoană care reîncarcă o pagină de zece ori arată ca zece persoane, iar numărul de pe site este ficțiune.

Soluția obișnuită este un cookie. Acest site nu folosește așa ceva. Iată ce face în schimb și de ce a fost nevoie de ceva muncă până când această propoziție a putut fi spusă cu sinceritate.

Cookie-ul pe care nu l-a cerut nimeni

Până anul acesta, fiecare cerere către contor pornea o sesiune PHP. Este o singură linie de cod, pare inofensivă și însemna că fiecare vizitator al fiecărui site care folosea un contor Stats4U primea un cookie de sesiune — setat de noi, pe pagina altcuiva, fără ca vreuna dintre părți să intenționeze asta.

ingredienteleIP · UA · IDdata · sarea zilnicăhash16 octețipăstrat2 zileadresa în sine nu este stocată niciodatăcând sarea dispare, nimeni nu mai poate recalcula o zi — nici măcar noi

Sesiunea nu a fost folosită niciodată pentru nimic. Dovada a fost ușor de găsit odată ce s-a uitat cineva: directorul în care sunt stocate sesiunile conținea zero fișiere. Ani la rând, setase un cookie pe site-urile altor oameni, pentru a păstra date care nu au fost niciodată scrise și niciodată citite.

A dispărut de pe calea de numărare. O sesiune pornește acum doar când cineva creează sau reconfigurează un contor — o acțiune pe care a făcut-o în mod deliberat, pe acest site.

Ce l-a înlocuit

Vizitatorii sunt deosebiți printr-un hash. În el intră cinci lucruri:

  • adresa IP
  • user agent-ul
  • ID-ul contorului
  • data de azi
  • un secret care se schimbă în fiecare zi

Rezultă 16 octeți, iar aceștia sunt stocați. Se păstrează două zile, apoi sunt șterși. Adresa IP în sine nu este stocată în niciun moment.

Două vizite ale aceleiași persoane, în aceeași zi, la același contor produc aceiași 16 octeți, deci a doua este recunoscută ca repetare. Mâine, aceeași persoană produce ceva complet diferit, pentru că s-au schimbat atât data, cât și secretul. Acesta este tot mecanismul.

De ce se schimbă secretul

Aceasta este partea la care e ușor de greșit, iar aici a fost greșită până anul acesta.

Versiunea veche folosea un singur secret permanent. Acesta producea în continuare hash-uri diferite pentru persoane diferite, ceea ce pare în regulă. Dar însemna că oricine deținea acel secret putea lua o adresă IP bănuită și îi putea recalcula hash-ul pentru orice zi din arhivă — transformând un tabel de valori anonime de 16 octeți înapoi într-o evidență a cine ce a vizitat, până unde ajungeau datele în trecut.

Secretul se schimbă acum zilnic, iar cele vechi sunt șterse după două zile. Odată ce s-a întâmplat asta, calculul nu mai poate fi efectuat, de nimeni. Asta îl include și pe cel care administrează acest site, și exact acesta este scopul: o protecție care depinde de buna purtare a operatorului nu este o protecție, ci o promisiune.

Rezoluția ecranului și o lecție despre ștergere

Rezoluția ecranului era colectată înainte. Este un semnal clasic de fingerprinting și nu merita costul, așa că a fost scoasă din scriptul care rulează pe pagina ce încorporează contorul.

Nu a fost de ajuns, iar motivul merită știut de oricine construiește lucruri pentru site-urile altora. Scriptul este livrat cu o durată de cache de șapte zile, așa că copiile vechi au rămas active în browserele vizitatorilor încă o săptămână după modificare. Mai rău, unele site-uri nu trimit deloc la script — au lipit o copie a lui în propriile pagini cu ani în urmă, iar acea copie va continua să facă exact ce făcea în ziua în care a fost lipită, pentru totdeauna.

Așa că rezoluția a continuat să sosească. Soluția a fost ca serverul să refuze valoarea, indiferent cine o trimite. Eliminarea unei colectări de date din client oprește doar clienții noi. Eliminarea ei de pe server o oprește imediat.

Verificare

Nimic din toate acestea nu valorează mult ca simplă afirmație, așa că iată comanda:

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

Dacă nu apare nimic, nu a fost setat niciun cookie.

O ultimă precauție, aceeași ca întotdeauna: aici este descris ce face software-ul. Dacă acest lucru respectă regulile aplicabile într-o anumită țară este o întrebare pentru cineva calificat să răspundă, iar acesta nu este acel răspuns.

Publicitate