Obrati se podršci

Odgovaramo e-poštom, obično u roku od dva dana.

Google reCAPTCHA provjerava ovu prijavu radi zaštite od zlouporabe; podaci se šalju tvrtki Google. Skripta se učitava tek kada se otvori ovaj obrazac.

← Sve objave

Što je zapravo stats2.gif

O sadržaju i njegovoj provjeri

U ovom članku

U mapi slika ovog projekta postoji datoteka pod nazivom stats2.gif. Ima 366 bajtova, datirana je u ožujku 2018. i pojavljuje se u točno nula redaka izvornog koda. Dana 23. kolovoza 2026. isporučena je 2.735 puta s odgovorom 200, sa 145 različitih web-mjesta — a tijekom pune rotacije pristupnog zapisnika s njih 858.

Datoteka na koju se ništa ne poziva, dohvaćena tisuće puta dnevno sa stotina tuđih stranica. Očito tumačenje: stara ugradnja koju ljudi nikada nisu zamijenili tiho isporučuje statičnu sliku ondje gdje je nekad bio brojač. Statične datoteke potpuno zaobilaze PHP. Ništa što stigne izravno do poslužitelja Apache ne može ništa brojiti.

Zato smo napisali alat. Čita svaku upućujuću stranicu iz zapisnika, dohvaća svaku putem istog provjerivača koji web-mjesto već koristi za dijagnostiku ugradnje — s njegovim SSRF zaštitama jer te adrese dolaze iz zapisnika, a ne od nas — i provjerava broji li išta na stranici zapravo.

Svih 858 stranica

već broje (ispravna ugradnja uz sliku)501
potpuno nedostupne288
značka prisutna, bez broja brojača u izvornom kodu69
samo stara značka, ništa ne broji0
već broje501nedostupne288ikona, bez broja69traženi slučaj: 0

Nijedna. Sedamdeset pet minuta dohvaćanja i odgovor je bio ne.

Mjerenje koje traje jednu sekundu

stats2.gif ima 13 × 14 piksela.

To nije brojač ni značka s brojem. To je mala ikona statistike — ista ona koju dizajn 981 u aktualnoj galeriji ponovno stvara, a komentar izvornog koda tog dizajna precizno opisuje njezina pretka: bez vidljivog broja, samo mala oznaka koja klikom otvara statistiku. Nikada nije ni trebala brojiti. Na tim je stranicama uvijek brojilo nešto drugo.

Ni datoteka nije neispravna. Odgovara s 200 uz Last-Modified iz 2018. i jednogodišnji rok predmemoriranja. Obavlja svoj posao.

Jedan poziv alata getimagesize() riješi cijeli taj smjer istrage u sekundi. Ovdje je pitanje bilo „zašto se ova datoteka tako često dohvaća“, pretpostavljeni odgovor „jer je neispravan brojač“, a sve nakon toga počivalo je na pretpostavci umjesto na datoteci — zato tu jednusekundnu provjeru vrijedi prvo provesti.

Jedino što je doista neispravno

Od svega je zapisnik pokazao jedan stvarni nedostatak: jednu adresu, zatraženu deset puta dnevno, svaki put s 410, gdje je cijeli isječak za ugradnju završio unutar atributa poveznice href. Netko je zalijepio kod u polje koje pretvara HTML u tekst. Njegov je brojač živ i broji — samo njegova poveznica na vlastitu statistiku ne vodi nikamo.

Alat ostaje, bez svojeg puta za pisanje. Pitanje je bilo opravdano; odgovor je ne; oboje vrijedi zadržati kako ga nitko ne bi morao ponovno ručno postavljati.

Oglas