「あなたはロボットですか?」のチェック、どれを選んだか
ツール工房.ai に「こんなツールが欲しい」とリクエストを受け付けるフォームを作ったとき、真っ先に悩んだのが スパム対策 でした。
フォームをそのまま公開すると、ボット(人間のふりをして自動でフォームを送ってくるプログラム)が、広告や意味不明な文字列を大量に送ってきます。それを防ぐ仕組みが、よく見る 「あなたはロボットですか?」のチェックです。「信号機の画像を選んでください」「バスの写真をクリック」みたいな、あれです。
「どれを使うか」を Claude に相談したら、いくつか候補を出してくれました。
候補として出てきたもの
最初に名前が挙がったのは Google の reCAPTCHA。一番有名で、ネットでもよく見ます。「信号機を選んでください」「バスの画像をクリック」といった、あの面倒くさい画像選択もこれです。
もう一方が Cloudflare Turnstile。聞き慣れない名前ですが、このサイトを置いている場所がすでに Cloudflare のサービスなので、「同じ会社のものなら相性がいいかも」という理由でも候補に入っていました。
最終的に Turnstile を選んだので、その理由を整理しておきます。
Turnstile を選んだ3つの理由
1. 無料で始めやすい
個人サイトにとって、毎月かかるコストは気になります。Turnstile は無料の範囲で使えて、執筆時点では、私が運用している規模で費用が発生したことはありません(料金体系や利用規模は変わる可能性があるので、利用前には公式サイトで最新情報をご確認ください)。
「個人サイトのスパム対策なら無料で始められる」という安心感が、まず大きい。
2. ユーザーが面倒くさくない
reCAPTCHA でよくある「画像を何枚も選ばされて、やっと送信できる」、あれは正直つらい体験です。せっかくフォームに辿り着いてくれた人がそこで離脱するのは、もったいない。
Turnstile は 裏側で静かに「この人は人間っぽいな」と判定するので、ほとんどの人は何もしなくていい。送信ボタンを押したら、画像選択を挟まずにスッと通過します(怪しい挙動だと操作を求められることもあるようですが、画像選びはありません)。
これが私にとって、一番大きな決め手でした。
3. 同じ会社のサービスでまとめられる
このサイトは Cloudflare というところに置いているのですが、Turnstile も同じ Cloudflare のものなので、設定画面が一か所にまとまる。地味なメリットですが、あちこちのサービスを行ったり来たりせずに済むのが、ズボラな自分には合っていました。
プライバシーの面でも気になっていた
reCAPTCHA は Google のサービスなので、フォームを開いた人の情報がGoogle に送られます。個人の小さなサイトでも、訪問者のデータを必要以上にあちこち送るのには、少し抵抗がありました。
Turnstile は「判定に必要な最小限のデータしか使わない」と公式に書かれていて、Google を1社余分に挟まなくて済む という点でも選びやすかった。完全に何も送らないとは言えませんが、少なくとも自分の感覚には合っていました。現在のフォームでの取り扱い詳細はプライバシーポリシーに記載しています。
実装は Claude にお任せ
Turnstile を組み込む流れは、ざっくりこんな感じです。
- 設定画面でポチポチ有効化する
- フォームの中に Turnstile のチェック枠を貼り付ける
- ユーザーが送信ボタンを押すと、Turnstile から「この人は人間ですよ」という 合図 が、フォームの内容と一緒にサーバーへ届く
- サーバー側で、その合図が本物かどうかを Cloudflare に問い合わせて確認する
- 本物なら処理を進めて、偽物なら弾く
ここで大事なのは、フォームに貼るだけでは不十分 で、サーバー側でその合図をちゃんと確認すること。これを忘れると、ボットがフォームを経由せず直接サーバーに送りつける「裏口」が空いたままになってしまいます。
このあたりの実装は全部 Claude にお任せしました。自分ではコードの中身は読めないので、代わりに 「ボットっぽい不正なリクエストを送ってみて、ちゃんと弾かれるか確かめて」 とお願いして、動作確認をしました。動くかどうかは確認できる、というのが、コードが読めなくてもなんとかなる理由のひとつです。
やってみて感じたこと
実装してから、フォームへのスパムは今のところほぼゼロです。もともとアクセス数が多いサイトではないので「Turnstile のおかげ」なのか「そもそもターゲットにされていないだけ」なのかは判断できませんが、少なくとも訪問者の邪魔をしている感じはありません。
個人開発でフォームを公開する機会があれば、Turnstile は試してみる価値があると思います。特に すでに Cloudflare を使っている人 にとっては、追加の管理コストがほぼなく、相性がよく感じています。
← 他の制作記を見る | トップ | お問い合わせ