stats2.gif の正体
このプロジェクトの画像ディレクトリには stats2.gif というファイルがあります。366 バイト、日付は 2018 年 3 月、ソースコード中に現れる行数はちょうどゼロ。2026 年 8 月 23 日、それは 145 の異なるサイトから 2735 回、ステータス 200 で配信されました——アクセスログ一周分では 858 サイトです。…
六つの完成した機能と、そこへ戻る道
2026 年 8 月 23 日、このサイトは 101 461 件のリクエストに応答しました。そのすべての中で、オーナートークン——統計ページの設定パネルを開く、あの ?t=——が現れた回数はちょうどゼロです。 「まれに」ではなく、ゼロです。その先にあるどのエンドポイントにも POST…
中身を読まずにクリックを数える
カウンターが答えるのは「何人来たか」です。より役に立つ問いはたいてい「何人が何かをしたか」——連絡先を押した、ダウンロードを開いた、ソーシャルのプロフィールへ行った。このサービスにはイベント機能が最初からあります。要素に data-s4u-event="kontakt" を付ければ、そこへのクリックがその名前で数えられます。…
Cookie の同意欄がいらないアクセス解析
たいていの解析ツールには同意バナーが要ります。たいていの解析ツールが訪問者の端末に何かを保存するからです。クッキー、ローカルストレージの項目、翌日まで生き延びる識別子。ヨーロッパの法律がもっとも直接に規律しているのはこの保存であり、それこそが、何かが起きる前にバナーを必要にしているものです。…
Stats4U 2 から残った三つの列
ここのカウンター本体の表には 166,436 行と、重要そうに見える列がいくつかあります。そのうち三つが lastdomain、firstdomain、userdomain です。データが入っています。 lastdomain 15,525 行で空でない firstdomain 15,457 行で空でない userdomain 2,982 行で空でない…
画面サイズの収集をやめた
このサービスは以前、画面解像度を記録していました。ブラウザのスクリプトが window.screen を読み、res=1920x1080 として一緒に送り、統計ページにはそのためのパネルがありました。 もう記録していません。それを収めていた表は今日ゼロ行で、パネルは空の状態を表示します。読み取りをしていたスクリプトの行は、いまでは何がそこにあったかを述べるコメントです。…
非力なハードウェアでパスワードにかかる値段
ここでは統計ページにパスワードをかけられます。そのパスワードのハッシュを計算する処理は、このサービスで唯一、遅くあるべき処理です — 盗まれたハッシュの解読を高くつかせているのが、まさにそれだからです。問題は、このハードウェアでどれくらい遅いか。 このサイトを動かしている機械で実測、PHP 8: PASSWORD_DEFAULT 560 ms (cost 12 になる)…
ランキングの仕組みと外れ方
stats4u.netは、開始当初からアクセスの多いカウンターをランキング化してきました——2012年の記事でも、すでにその改善について触れています。現行版は/topにあり、内部の仕組みは当時とは異なります。30日間の訪問者数による上位25件のカウンター、今週と先週を比較する別建ての「fastest…
公開ディレクトリのバックアップはソースの流出
大きなファイルをいじる前に、まず複製を取るのは自然な動きです。cp index.php index.php.変更前、それから作業。そのファイルがウェブサーバーの公開するディレクトリにあるなら、その時点でソースコード一式が平文でダウンロードできる状態になります — データベースの資格情報も、秘密も、そのファイルにたまたま入っているすべてを。 Apache が index.php…
新しいプライバシー方針・規約・処理契約
2026年8月19日時点で、stats4u.netにはこれまで1つしかなかった法的文書が3つになりました。書き直したプライバシーポリシー、利用規約、そして新たに、GDPR第28条に基づくデータ処理契約(DPA)です。 なぜ特にDPAなのか…
Perl に見えた言語コード
2026年8月19日、.htaccessに、ブラウザに直接配信されてはならない種類のファイルをブロックするルールを追加しました。編集後にWebルートに残ったソースコードのコピー——index.php.bakや、うっかり残ったconfig.py、その他スクリプト系の拡張子を持つファイルで、訪問者がそれを実行するのではなく、ソースコードのままプレーンテキストとして取得できてしまうも…
同じファイルを毎回圧縮する
Apache はレスポンスをその場で圧縮します。毎回中身が違うページなら、それしか手がありません。月に一度しか変わらないスタイルシートにとっては、サーバーが訪問者ごとに同じ作業をやり直し、何週間も続け、そのたびに結果を捨てるということです。そのためのキャッシュはありません。 2026 年 8 月 19 日、確立済みの接続の上で、このサイト自身の style.css(124…