Turnstile + 本文重複検知 PoC

同一 IP からの連打を、IP アドレスもメールアドレスも保存せずに止められることを確認するデモです。 STEP1(Turnstile)は bot を止め、STEP2(本文重複検知)は同じ文面のコピー&ペースト再送を止めます。 保存するのは本文から計算したハッシュだけで、生の本文・メールアドレス・IP は一切保存しません。

デモの手順

  1. まず 1 通送ってください。「サンプル文面を入れる」を押すと、実際の問い合わせに近い長さの文面が入ります。Turnstile のチェックを通過すれば、通常どおり受け付けられます。
  2. 次に全く同じ文面をもう一度送ると、2 通目が止まります。本文の完全一致(SHA-256)で検知します。Turnstile は 2 通目も通過しますので、STEP1 だけでは止まらないことがここで確認できます。
  3. 本文を 1 文字だけ変えて送っても、類似判定で止まります。simhash のハミング距離が閾値(現在 5)以下だと「ほぼ同じ文面」とみなします。実演では末尾に「。」を 1 つ足すのが確実です(実測 距離 1)。
  4. 全く違う内容を送ると、通常どおり受け付けられます。正規の問い合わせを巻き込まないことの確認です。
  5. 「デモ用リセット」で指紋と判定ログを消せます。何度でも最初から実演できます。

類似判定は文面が長いほど精度が上がります。サンプル文面(131 文字)で全位置を網羅して実測したところ、1 文字の変更が閾値 5 以下に収まる割合は 置換 93%(522 通り中 488)・挿入 99%(132 通り中 131)・削除 97%(131 通り中 127)でした。残りは通過します。 20 文字程度の極端に短い文では 1 語の入れ替えで距離が 11 まで開き、確実に通過します。実演は 100 文字以上の文面で、上記の「末尾に「。」を足す」で行ってください。

お問い合わせフォーム

判定ログ(直近50件)

時刻 判定 理由 本文ハッシュ(先頭8文字) 距離