Contacter l'assistance

Nous répondons par e-mail, en général sous deux jours.

Pour prévenir les abus, Google reCAPTCHA vérifie cet envoi ; des données sont transmises à Google. Le script n'est chargé qu'à l'ouverture de ce formulaire.

← Tous les articles

Le fichier que nous avons dit cassé

Dans le dossier d’images de ce projet se trouve un fichier nommé stats2.gif. Il pèse 366 octets, date de mars 2018, et apparaît dans exactement zéro ligne de code source. Le 23 août 2026, il a été servi 2 735 fois avec un code 200, depuis 145 sites différents — et sur toute la rotation du journal d’accès, depuis 858.

Un fichier que personne ne référence, récupéré des milliers de fois par jour depuis des centaines de pages étrangères. La lecture évidente : une intégration ancienne que personne n’a remplacée, servant en silence une image statique là où il y avait autrefois un compteur. Les fichiers statiques contournent entièrement PHP. Rien qui arrive directement à Apache ne peut compter quoi que ce soit.

Nous avons donc écrit un outil. Il lit dans le journal chaque page référente, récupère chacune d’elles avec le même vérificateur que le site utilise déjà pour diagnostiquer les intégrations — avec ses garde-fous contre le SSRF, car ces adresses viennent d’un journal et non de nous — et cherche si quoi que ce soit sur la page compte vraiment.

Les 858 pages

comptent déjà (une intégration fonctionnelle à côté)501
pas joignables du tout288
badge présent, aucun numéro de compteur dans la source69
seulement l’ancien badge, rien qui compte0

Pas une seule. Soixante-quinze minutes de récupération pour ne rien trouver.

La mesure qui aurait pris une seconde

stats2.gif fait 13 sur 14 pixels.

Ce n’est pas un compteur, ni un badge portant un chiffre. C’est la petite icône de statistiques — exactement ce que recrée le motif 981 dans la galerie actuelle, et le commentaire de son propre code décrit son ancêtre avec précision : pas de chiffre visible, seulement une petite marque qui ouvre vos statistiques quand on clique dessus. Il n’a jamais été censé compter. Sur ces pages, c’était toujours autre chose qui comptait.

Le fichier n’est pas cassé non plus. Il répond 200, avec un Last-Modified de 2018 et une année de durée de cache. Il fait son travail.

Un appel à getimagesize() au départ aurait clos toute cette piste avant que l’outil ne soit écrit. À la place, la question était « pourquoi ce fichier est-il autant récupéré », la réponse supposée était « parce que c’est un compteur cassé », et tout le reste a découlé d’une hypothèse que personne n’a vérifiée.

La seule chose réellement cassée

De tout cela, le journal a montré un unique défaut véritable : une adresse, demandée dix fois par jour, toutes en 410, dans laquelle un extrait d’intégration entier s’était retrouvé à l’intérieur du href du lien. Quelqu’un a collé le code dans un champ qui échappe le HTML. Son compteur est vivant et compte — seul son propre lien vers ses propres statistiques ne mène nulle part.

L’outil reste, sans sa voie d’écriture. La question était légitime, la réponse est non, et les deux méritent d’être conservées pour que personne n’ait à la reposer à la main.

Publicité