Hubungi dukungan

Kami membalas melalui e-mail, biasanya dalam dua hari.

Google reCAPTCHA memeriksa kiriman ini untuk mencegah penyalahgunaan; data dikirim ke Google. Skrip hanya dimuat saat formulir ini dibuka.

← Semua artikel

Apa sebenarnya stats2.gif

Di folder gambar proyek ini ada sebuah berkas bernama stats2.gif. Ukurannya 366 byte, bertanggal Maret 2018, dan muncul di tepat nol baris kode sumber. Pada 23 Agustus 2026 berkas itu dilayani 2.735 kali dengan status 200, dari 145 situs web yang berbeda — dan sepanjang satu putaran penuh rotasi log akses, dari 858.

Sebuah berkas yang tidak dirujuk siapa pun, diambil ribuan kali sehari dari ratusan halaman milik orang lain. Tafsiran yang paling jelas: sematan lama yang tidak pernah diganti, diam-diam menyajikan gambar statis di tempat yang dulu berisi penghitung. Berkas statis sama sekali tidak melewati PHP. Apa pun yang langsung ditangani Apache tidak dapat menghitung apa pun.

Maka kami menulis sebuah alat. Alat itu membaca setiap halaman perujuk dari log, mengambil masing-masing melalui pemeriksa yang sama yang sudah dipakai situs untuk diagnosis sematan — lengkap dengan pengaman SSRF-nya, karena alamat-alamat itu berasal dari log, bukan dari kami — lalu memeriksa apakah ada sesuatu di halaman itu yang benar-benar menghitung.

Semua 858 halaman

sudah menghitung (ada sematan yang berfungsi di sampingnya)501
sama sekali tak terjangkau288
lencana ada, tanpa nomor penghitung di sumber69
hanya lencana lama, tidak ada yang menghitung0
sudah menghitung501tidak terjangkau288ikon, tanpa nomor69kasus yang kami cari: 0

Tidak satu pun. Tujuh puluh lima menit pengambilan, dan jawabannya: tidak.

Pengukuran yang hanya butuh satu detik

stats2.gif berukuran 13 kali 14 piksel.

Itu bukan penghitung dan bukan lencana yang bertuliskan angka. Itu ikon statistik kecil — hal yang sama yang dibuat ulang oleh desain 981 di galeri saat ini, dan komentar di kode sumber desain itu menggambarkan pendahulunya dengan tepat: tanpa angka yang terlihat, hanya tanda kecil yang membuka statistik saat diklik. Ikon itu memang tidak pernah dimaksudkan untuk menghitung. Di halaman-halaman itu, selalu ada hal lain yang menghitung.

Berkas itu juga tidak rusak. Berkas itu menjawab 200 dengan Last-Modified dari 2018 dan masa cache satu tahun. Berkas itu menjalankan tugasnya.

Satu panggilan ke getimagesize() menuntaskan seluruh arah penyelidikan itu dalam sedetik. Di sini pertanyaannya adalah “mengapa berkas ini begitu sering diambil”, jawaban yang diasumsikan adalah “karena ini penghitung yang rusak”, dan semua langkah sesudahnya bertumpu pada asumsi itu, bukan pada berkasnya — itulah yang membuat pemeriksaan satu detik itu layak dijalankan lebih dulu.

Satu hal yang benar-benar rusak

Dari semua itu, log hanya menunjukkan satu cacat yang sungguhan: satu alamat, diminta sepuluh kali sehari, semuanya 410, di mana seluruh potongan kode sematan berakhir di dalam atribut tautan href. Seseorang menempelkan kode itu ke kolom yang meng-escape HTML. Penghitungnya hidup dan menghitung — hanya tautan mereka sendiri ke statistik mereka sendiri yang tidak mengarah ke mana pun.

Alat itu tetap dipertahankan, tanpa jalur penulisannya. Pertanyaannya sah; jawabannya tidak; dan keduanya layak disimpan agar tidak ada yang perlu menanyakannya lagi secara manual.

Iklan