サポートに連絡

メールでご返信します。通常は2日以内です。

不正利用を防ぐため、Google reCAPTCHA がこの送信を確認します。その際データが Google に送られます。スクリプトはこのフォームを開いたときにだけ読み込まれます。

← すべての記事

「壊れている」と呼んでいたファイル

このプロジェクトの画像ディレクトリには stats2.gif というファイルがあります。366 バイト、日付は 2018 年 3 月、ソースコード中に現れる行数はちょうどゼロ。2026 年 8 月 23 日、それは 145 の異なるサイトから 2735 回、ステータス 200 で配信されました——アクセスログ一周分では 858 サイトです。

コードのどこからも参照されていないファイルが、他人のページ数百件から毎日数千回取得されている。素直な読み方はこうです。誰も差し替えなかった古い埋め込みが、かつてカウンターだった場所で静かに静止画を返している。静的ファイルは PHP を完全に迂回します。Apache が直接返すものは、何も数えられません。

そこでツールを書きました。ログから参照元ページをすべて読み出し、埋め込み診断ですでに使っている取得器で一つずつ取得し——URL は自分たちではなくログ由来なので、その SSRF 防護ごと使います——そのページで実際に何かが数えているかどうかを見ます。

858 ページすべて

すでに数えている(隣に動く埋め込みがある)501
そもそも到達できない288
アイコンはあるが、ソースにカウンター番号がない69
古いアイコンだけ、何も数えていない0

一件もなし。七十五分の取得で、何も見つかりませんでした。

一秒で済んだはずの計測

stats2.gif の寸法は 13 × 14 ピクセルです。

カウンターでも、数字入りのバッジでもありません。小さな統計アイコン——現在のギャラリーのデザイン 981 が再現しているまさにそれで、981 自身のコード内のコメントが先祖を正確に説明しています。数字は見せず、小さな印だけを置き、押すと統計が開く。数えるためのものではなかったのです。それらのページでは、ずっと別のものが数えていました。

そしてこのファイルは壊れてもいません。2018 年の Last-Modified と一年のキャッシュ期間を付けて 200 で応答します。仕事をしています。

最初に getimagesize() を一度呼べば、この調査の筋道はツールを書く前に終わっていました。実際に立てられた問いは「なぜこのファイルはこんなに頻繁に取得されるのか」で、受け入れられた答えは「壊れたカウンターだから」で、その後のすべては誰も検証しなかった前提の上に載っていました。

本当に壊れていた唯一のもの

この一連から、ログが示した本物の欠陥はひとつだけでした。一日十回リクエストされ、すべて 410 を返す URL があり、埋め込みコード全体がリンクの href の中に入り込んでいました。誰かが HTML をエスケープする入力欄にコードを貼ったのです。そのカウンターは生きていて、数えています——行き先を失っているのは、自分の統計を指す自分のリンクだけです。

ツールは残しました。書き込み経路は外しています。問いは正当で、答えは「いいえ」でした。どちらも残しておく価値があります。もう一度手で問い直さずに済むように。

広告