Επικοινωνία με την υποστήριξη

Απαντάμε μέσω e-mail, συνήθως μέσα σε δύο ημέρες.

Το Google reCAPTCHA ελέγχει αυτή την υποβολή για κατάχρηση· δεδομένα αποστέλλονται στην Google. Το script φορτώνεται μόνο όταν ανοίξει αυτή η φόρμα.

← Όλα τα άρθρα

Τι είναι στην πραγματικότητα το stats2.gif

Στον φάκελο εικόνων αυτού του έργου υπάρχει ένα αρχείο με το όνομα stats2.gif. Έχει μέγεθος 366 byte, φέρει ημερομηνία Μαρτίου 2018 και εμφανίζεται σε ακριβώς μηδέν γραμμές πηγαίου κώδικα. Στις 23 Αυγούστου 2026 σερβιρίστηκε 2.735 φορές με κωδικό 200, από 145 διαφορετικούς ιστότοπους — και σε όλη την περίοδο εναλλαγής του αρχείου καταγραφής πρόσβασης, από 858.

Ένα αρχείο στο οποίο δεν παραπέμπει κανείς, που ζητείται χιλιάδες φορές την ημέρα από εκατοντάδες σελίδες αγνώστων. Η προφανής ερμηνεία: μια παλιά ενσωμάτωση που οι άνθρωποι δεν αντικατέστησαν ποτέ και που σερβίρει αθόρυβα μια στατική εικόνα εκεί όπου κάποτε υπήρχε μετρητής. Τα στατικά αρχεία παρακάμπτουν εντελώς την PHP. Τίποτα που φτάνει απευθείας στον Apache δεν μπορεί να μετρήσει οτιδήποτε.

Γράψαμε λοιπόν ένα εργαλείο. Διαβάζει από το αρχείο καταγραφής κάθε σελίδα παραπομπής, ανακτά την καθεμία μέσω του ίδιου ελεγκτή που χρησιμοποιεί ήδη ο ιστότοπος για τη διάγνωση ενσωματώσεων — με τις προστασίες του από SSRF, επειδή αυτές οι διευθύνσεις προέρχονται από ένα αρχείο καταγραφής και όχι από εμάς — και ελέγχει αν κάτι στη σελίδα μετρά πράγματι.

Και οι 858 σελίδες

ήδη μετρούν (με μια λειτουργική ενσωμάτωση δίπλα)501
καθόλου προσβάσιμες288
υπάρχει το σήμα, χωρίς αριθμό μετρητή στον κώδικα69
μόνο το παλιό σήμα, τίποτα δεν μετρά0
μετρούν ήδη501μη προσβάσιμες288εικονίδιο, χωρίς αριθμό69η περίπτωση που ψάχναμε: 0

Ούτε μία. Εβδομήντα πέντε λεπτά ανακτήσεων, και η απάντηση ήταν όχι.

Η μέτρηση που παίρνει ένα δευτερόλεπτο

stats2.gif έχει διαστάσεις 13 επί 14 pixel.

Αυτό δεν είναι μετρητής ούτε σήμα με αριθμό. Είναι το μικρό εικονίδιο στατιστικών — το ίδιο που αναπαράγει το σχέδιο 981 στην τρέχουσα συλλογή, και το σχόλιο στον κώδικα αυτού του σχεδίου περιγράφει με ακρίβεια τον πρόγονό του: κανένας ορατός αριθμός, μόνο ένα μικρό σημάδι που ανοίγει τα στατιστικά με ένα κλικ. Δεν προοριζόταν ποτέ να μετρά. Σε εκείνες τις σελίδες, κάτι άλλο μετρούσε πάντα.

Ούτε χαλασμένο είναι το αρχείο. Απαντά 200 με Last-Modified από το 2018 και διάρκεια cache ενός έτους. Κάνει τη δουλειά του.

Μία κλήση στο getimagesize() κλείνει όλη αυτή τη γραμμή έρευνας σε ένα δευτερόλεπτο. Εδώ το ερώτημα ήταν «γιατί ζητείται τόσο συχνά αυτό το αρχείο», η υποτιθέμενη απάντηση ήταν «επειδή είναι χαλασμένος μετρητής», και όλα όσα ακολούθησαν στηρίχτηκαν στην υπόθεση και όχι στο αρχείο — γι’ αυτό αξίζει να γίνεται πρώτος ο έλεγχος του ενός δευτερολέπτου.

Το μόνο που είναι πραγματικά χαλασμένο

Από όλα αυτά, το αρχείο καταγραφής έδειξε ένα μόνο πραγματικό ελάττωμα: μία διεύθυνση, που ζητείται δέκα φορές την ημέρα, όλες με 410, όπου ένα ολόκληρο απόσπασμα ενσωμάτωσης είχε καταλήξει μέσα στο χαρακτηριστικό του συνδέσμου href. Κάποιος επικόλλησε τον κώδικα σε ένα πεδίο που μετατρέπει την HTML σε απλό κείμενο. Ο μετρητής του είναι ζωντανός και μετρά — μόνο ο δικός του σύνδεσμος προς τα δικά του στατιστικά δεν οδηγεί πουθενά.

Το εργαλείο μένει, χωρίς τη διαδρομή εγγραφής του. Το ερώτημα ήταν θεμιτό· η απάντηση είναι όχι· και αξίζει να κρατηθούν και τα δύο, ώστε να μη χρειαστεί κανείς να το ξαναρωτήσει με το χέρι.

Διαφήμιση