Numërim pa cookie
Për përmbajtjen dhe kontrollin e saj
Në këtë artikull
Një numërues vizitorësh ka një detyrë të ndërlikuar: duhet të dallojë dy vizita. Nëse nuk mundet, një person që ringarkon një faqe dhjetë herë duket si dhjetë veta dhe numri në uebsajt është trillim.
Zgjidhja e zakonshme është një cookie. Ky uebsajt nuk përdor të tillë. Ja çfarë bën në vend të saj dhe pse u desh punë që kjo fjali të ishte e ndershme.
Cookie që askush nuk e kërkoi
Deri këtë vit, çdo kërkesë për numëruesin niste një sesion PHP. Është një rresht kodi, duket i padëmshëm dhe do të thoshte që çdo vizitor në çdo uebsajt që përdorte një numërues Stats4U merrte një cookie sesioni – të vendosur nga ne, në faqen e dikujt tjetër, pa e synuar asnjëra palë.
Sesioni nuk u përdor kurrë për asgjë. Prova u gjet lehtë sapo shikoi dikush: dosja ku ruhen sesionet përmbante zero skedarë. Për vite kishte vendosur një cookie në uebsajtet e të tjerëve për të mbajtur të dhëna që nuk u shkruan e nuk u lexuan kurrë.
Është hequr nga rruga e numërimit. Një sesion tani nis vetëm kur dikush krijon ose rikonfiguron një numërues – një veprim që e ndërmori me qëllim në këtë uebsajt.
Çfarë e zëvendësoi
Vizitorët dallohen përmes një hash-i. Në të hyjnë pesë gjëra:
- adresa IP
- identifikuesi i shfletuesit
- ID-ja e numëruesit
- data e sotme
- një sekret që ndryshon çdo ditë
Prej tij dalin 16 bajte dhe këto ruhen. Mbahen për dy ditë dhe pastaj fshihen. Vetë adresa IP nuk shkruhet në asnjë çast.
Dy vizita nga i njëjti person në të njëjtën ditë te i njëjti numërues japin të njëjtat 16 bajte, prandaj e dyta njihet si përsëritje. Nesër i njëjti person jep diçka krejt tjetër, sepse si data ashtu edhe sekreti kanë ndryshuar. Ky është i gjithë mekanizmi.
Pse sekreti ndryshon
Kjo është pjesa ku mund të gabohet lehtë dhe këtu ishte e gabuar deri këtë vit.
Versioni i vjetër përdorte një sekret të përhershëm. Ai përsëri jepte hash-e të ndryshme për njerëz të ndryshëm, gjë që tingëllon në rregull. Por kjo do të thoshte se kushdo që e kishte atë sekret mund të merrte një adresë IP të dyshuar dhe të rillogariste hash-in e saj për çdo ditë në arkiv – duke e kthyer një tabelë vlerash anonime prej 16 bajtesh në një regjistër se kush vizitoi çfarë, aq larg në të kaluarën sa shkonin të dhënat.
Sekreti tani ndryshon çdo ditë dhe të vjetrit fshihen pas dy ditësh. Pasi të ketë ndodhur kjo, llogaritja nuk mund të bëhet më nga askush. Kjo përfshin edhe atë që e administron këtë uebsajt, pikërisht ky është qëllimi: një mbrojtje që varet nga sjellja e mirë e operatorit nuk është mbrojtje, është premtim.
Rezolucioni i ekranit dhe një mësim për fshirjen e gjërave
Rezolucioni i ekranit mblidhej më parë. Është një sinjal klasik për krijimin e gjurmës identifikuese dhe nuk ia vlente koston, prandaj u hoq nga skripti që ekzekutohet në faqen ku bëhet integrimi.
Kjo nuk mjaftoi dhe arsyeja ia vlen të dihet nga kushdo që ndërton gjëra për uebsajtet e të tjerëve. Skripti dërgohet me afat ruajtjeje shtatë ditë në memorien e ndërmjetme, prandaj kopjet e vjetra mbetën aktive në shfletuesit e vizitorëve për një javë pas ndryshimit. Më keq akoma, disa uebsajte nuk lidhen fare me skriptin – e kanë ngjitur një kopje të tij në faqet e veta vite më parë dhe ajo kopje do të vazhdojë përgjithmonë të bëjë pikërisht atë që bënte ditën kur u ngjit.
Prandaj rezolucioni vazhdonte të mbërrinte. Zgjidhja ishte që serveri ta refuzonte vlerën, pavarësisht se kush e dërgon. Heqja e mbledhjes së një të dhëne nga klienti ndalon vetëm klientët e rinj. Heqja nga serveri e ndalon menjëherë.
Kontrolli
Asgjë nga këto nuk vlen shumë vetëm si pohim, prandaj ja komanda:
- curl -sk -D - -o /dev/null 'https://www.stats4u.net/index.php?action=pic&s4uid=1' | grep -i set-cookie
Pa rezultat do të thotë se nuk u vendos cookie.
Një vërejtje për ta mbyllur, e njëjta si gjithmonë: kjo përshkruan çfarë bën programi. Nëse i përmbush rregullat që zbatohen në një shtet të caktuar, kjo është pyetje për dikë të kualifikuar për t'iu përgjigjur dhe ky tekst nuk është ajo përgjigje.
Përditësim, 11 shtator 2026: Që nga 27 gusht 2026, skripti lexonte sërish rezolucionin e ekranit, gjerësinë e dritares së shfletuesit dhe raportin e pikselëve në çdo uebsajt që e integronte. Që nga 11 shtator 2026, e bën vetëm aty ku pronari i uebsajtit e aktivizon me data-screen="1". Pa atë atribut, skripti aktual nuk lexon asnjërën nga të tria dhe serveri nuk i ruan më as nga kopjet e vjetra.