Turnstileとは?CAPTCHAに代わる認証

《 Cloudflare完全ガイド 目次へ 》

「信号機の画像をすべて選んでください」。Webサイトの登録フォームやログイン画面で、こうしたパズルを解かされた経験は誰にでもあるはずです。あれがCAPTCHA(キャプチャ)と呼ばれる、人間とボットを見分けるためのテストです。

しかしこのパズル、正直なところ面倒ですし、時には人間なのに何度も失敗します。Cloudflare Turnstile(ターンスタイル)は、この「パズルを解かせる」体験そのものをなくすことを目指した、CAPTCHAの代替サービスです。無料で、しかもCloudflareを使っていないサイトにも導入できるという特徴があり、第2章で学ぶ機能の中では珍しく「単体で使える道具」です。

このページで分かること

  • CAPTCHAとは何か、何が問題とされてきたのか
  • Turnstileがパズルなしで人間を確認する仕組み
  • トークン発行から検証までの流れ(サイト側の実装の全体像)
  • 料金と無料枠、reCAPTCHAとの違い
  • 初心者が注意するポイント

CAPTCHAの役割と問題点

なぜフォームに「人間確認」が必要なのか

前々ページのボット対策で見たとおり、問い合わせフォームや会員登録、コメント欄は、スパムボットの主要な標的です。サーバー側から見ると、ボットの送信も人間の送信も同じPOSTリクエストであり、届いた後に見分けるのは困難です。そこで「送信の前」に人間であることを確かめるテストを挟む。これがCAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart:コンピューターと人間を区別する完全自動化されたチューリングテスト)の役割です。

CAPTCHAの3つの問題

長年使われてきたCAPTCHAですが、問題も指摘されてきました。

  1. ユーザー体験の悪化:パズルには平均で十数秒〜30秒程度かかるとされ、途中で離脱する利用者も出ます。ECサイトなら売上の損失に直結します
  2. AIの進歩で効果が低下:皮肉なことに、画像認識AIの発達により、いまやボットのほうが人間よりパズルが得意になりつつあります
  3. プライバシーへの懸念:広く使われるGoogleのreCAPTCHAは、判定にCookieなどの情報を利用することへの懸念が指摘されてきました

つまり「人間には面倒で、ボットには突破され、プライバシーの心配もある」。この状況への答えとして、Cloudflareが2022年に公開したのがTurnstileです。

Turnstileの仕組み

パズルの代わりに「ブラウザーのふるまい」を見る

Turnstileは、フォームに小さなウィジェット(部品)として埋め込まれます。訪問者に見えるのは「確認中…」から「成功」に変わる小さなボックスだけで、原則としてパズルは出てきません。

その裏側でTurnstileは、ボット対策のページで学んだ手法の応用として、ブラウザー内で複数の非対話型チャレンジを実行しています。本物のブラウザーなら当然備えている挙動の確認、機械学習による疑わしさの採点などを、訪問者が気づかない数秒のうちに済ませ、「人間らしい」と判定されればチェックマークが付きます。疑わしい場合でも、追加されるのはチェックボックスのクリック程度で、画像パズルを解かせることはありません。

トークンの発行と検証:2段階で成立する

Turnstileの動作は「ブラウザー側での判定」と「サーバー側での検証」の2段階で成立します。ここがTurnstile導入の理解のかなめです。

Turnstileの認証フロー
図1:Turnstileの認証フロー
  1. フォームのページにウィジェットを設置しておく(サイトごとに発行されるサイトキーを使用)
  2. 訪問者がページを開くと、ウィジェットがブラウザー内で自動チェックを実行する
  3. 合格するとトークン(通行証にあたる文字列)が発行され、フォーム送信時に一緒にサーバーへ送られる
  4. サーバーは受け取ったトークンをCloudflareの検証API(siteverify)に問い合わせ、本物か・使い回しでないかを確認する
  5. 検証が通ったときだけ、フォームの内容を処理する

ポイントは手順4です。ウィジェットを置くだけではボットは防げません。トークンの検証をサーバー側で行って初めて「Turnstileを通過していない送信は受け付けない」が成立します。WordPressであれば、この検証処理を代行してくれるプラグインを使うのが手軽です。

Cloudflare外のサイトでも使える

Turnstileはサイトキーと検証APIだけで完結するため、Cloudflareのプロキシ(オレンジ雲)を使っていないサイトにも導入できます。逆に、Cloudflareのプロキシ配下のサイトでWAFやボット対策が出す「チャレンジ画面」も、内部ではこのTurnstileと同じ技術が使われています。第2章のほかの機能が「Cloudflareを通る通信」を守るのに対し、Turnstileは「フォームという点」を守る道具と整理できます。

料金とreCAPTCHAとの違い

Turnstileは無料で利用でき、確認回数(チャレンジ数)に上限はありません(2026年8月時点)。無料の範囲ではウィジェット20個まで・ウィジェットあたりホスト名10個まで・分析画面の遡りは7日間という制限があり、それを超える大規模利用向けにEnterprise版(ウィジェット数無制限・ホスト名200個・ブランド表示の除去など)があります。

reCAPTCHAとの主な違いをまとめると次のとおりです。

  • 体験:Turnstileは原則パズルなし。reCAPTCHAも近年は非表示型がありますが、疑わしいと画像パズルが出ます
  • プライバシー:TurnstileはCookieを使った追跡を行わず、収集データを広告等に利用しないと明言しています
  • 料金:reCAPTCHAは一定回数を超えると有料(Google Cloudの課金体系)。Turnstileは回数無制限で無料
  • 導入のしやすさ:どちらもスクリプト1行+サーバー検証で、移行はサイトキーの差し替えが中心です

初心者が注意するポイント

  • サーバー側の検証を省略しない:もっとも多い導入ミスです。ウィジェットの見た目だけ設置しても、検証しなければ素通りです。プラグインや実装例に従い、必ずsiteverifyでの検証まで行ってください
  • シークレットキーは公開しない:サイトキー(公開してよい)とシークレットキー(サーバー検証用・非公開)の2つが発行されます。シークレットキーをHTMLに書いてはいけません
  • テスト用キーを活用する:開発中は「常に合格」「常に不合格」になるテスト用キーが用意されています。本番キーでの動作確認に苦労する前に活用しましょう
  • 万能ではない:Turnstileが守るのは設置したフォームだけです。サイト全体の防御はWAF・ボット対策・Rate Limitingの担当で、組み合わせて初めて層になります
  • 正規ユーザーが失敗するケース:ごく古いブラウザーや特殊な環境では確認に失敗することがあります。問い合わせの導線を複数用意しておくと安心です

関連サービス

  • ボット対策(Bot Fight Mode等):サイト全体で自動アクセスを見分ける機能。Turnstileの判定技術の親戚です
  • Rate Limiting:フォームやログインへの試行回数を制限する機能。Turnstileと重ねると効果的です
  • WAF:チャレンジアクションの画面としてTurnstileの技術が使われています
  • Email Routing:Turnstileと同じく単体で使える実用サービス。フォームからのメール通知と組み合わせる場面もあります(第5章)

まとめ

  • CAPTCHAは人間とボットを見分けるテストだが、「人間に面倒・ボットに突破されつつある・プライバシー懸念」という問題を抱えていた
  • Turnstileは、パズルの代わりにブラウザー内の自動チェックで人間らしさを判定するCAPTCHA代替
  • 動作は2段階:ブラウザーでトークンを発行し、サーバーが検証APIで確認する。サーバー側検証を省くと機能しない
  • 無料・回数無制限で、Cloudflareを使っていないサイトにも導入できる
  • 守れるのは設置したフォームだけ。WAF・ボット対策・Rate Limitingと組み合わせて層にする

次に読む

→ ガイドの目次に戻る

※本記事の情報は 2026年8月時点のものです。

タイトルとURLをコピーしました