TurnstileかreCAPTCHAか、無料上限と誤判定の代償で選ぶ

|著者: QUASA編集チーム|2 分で読めます| 1
TurnstileかreCAPTCHAか、無料上限と誤判定の代償で選ぶ

問い合わせや登録フォームで、検証件数が増えても費用を抑えたいならCloudflare Turnstileが有力だ。危険度に応じて送信を通す、追加確認する、保留するといった処理を分けたいなら、スコアを使えるreCAPTCHAが候補になる。どちらを選ぶ場合も、正当な送信を止める損失とスパムを通す損失を見込む必要がある。

費用の分かれ目はフォームの数や送信数だけでは決まらない。Turnstileの無料プランにはウィジェット数の上限があり、reCAPTCHAの無料評価枠は複数サイトで共有される。画面への組み込みだけでなく、サーバーでの検証と、判定に失敗した利用者の扱いまでが選択の対象になる。

無料枠と月額は同じ単位で比べる

CloudflareのTurnstileプラン表では、無料プランはアカウントあたり最大20ウィジェット、ウィジェットごとに最大10ホスト名で、チャレンジと検証リクエストの件数は無制限だ。複数のフォームで設定を共用できる場合もあるため、フォームの数がそのまま必要なウィジェット数になるわけではない。サイトやドメインをまたぐ運用では、検証量と併せて設定の分け方を考える必要がある。

Googleの課金仕様では、Essentialsは組織全体で暦月あたり1万評価まで無料、Premiumは1万評価まで無料、1万件超から10万件までは8米ドルの定額、10万件を超えた分は1,000評価あたり1米ドルだ。無料枠はアカウントやサイトを増やしても組織内で共有される。課金を有効にしていないEssentialsで上限を超えると、追加の評価リクエストは割り当てエラーになる。

月額の比較は、送信1件につき評価または検証を1回行うという条件でそろえる。Turnstileは無料プランのウィジェットとホスト名の上限内、reCAPTCHAは上限を超える月にPremiumの課金設定を済ませていると仮定する。以下はサービス料金の米ドル表示で、追加の評価や自社側の運用費は含まない。

  • 月1万件:Turnstileは0米ドル。reCAPTCHAも組織の無料枠をほかで使っていなければ0米ドル。
  • 月10万件:Turnstileは0米ドル。reCAPTCHA Premiumは8米ドル。Essentialsのままでは無料枠を超える。
  • 月100万件:Turnstileは0米ドル。reCAPTCHA Premiumは定額の8米ドルと、超過90万評価分の900米ドルを合わせて908米ドル。

この差は送信量が増えるほど大きくなるが、Turnstileの無料条件から外れる構成にはそのまま当てはめられない。また、reCAPTCHAで一つの送信に複数の評価を使えば、送信件数より評価件数が多くなる。見積もりの基準はフォームに届いた件数ではなく、組織全体で実際に作成する評価の件数だ。

読み込み量とプライバシーをどう見るか

フォームで使うTurnstileとreCAPTCHA v3の推定読み込み量を、約60KBと約110KBで比較

Core Formsの運用比較は、スクリプトの読み込み量をTurnstileで約60KB、reCAPTCHA v3で約110KBと概算し、軽さやプライバシーを重視するフォームではTurnstileを選んでいる。この数字は同記事の運用上の目安であり、同じ条件で測ったページ全体の表示速度やスパム検出率ではない。記事の精度に関する評価も、公開された誤判定率による順位付けではなく、筆者の使用経験として扱うのが適切だ。

フォームを多くのページに載せるなら、検証用の読み込みは送信した人以外にも関係する。一方、ページ全体の転送量、スクリプトを読み込むタイミング、訪問者の通信環境によって体感は変わる。容量の概算だけを根拠に、どのサイトでもTurnstileのほうが一定時間速いとは言えない。

プライバシー要件が厳しい場合は、運用者の評価に加え、ブラウザから外部サービスへ発生する通信と、自社サーバーが評価時に送る情報を見る必要がある。利用者への説明やデータの取り扱いに求められる条件は、フォームで集める情報と自社の運用によって異なる。「プライバシー重視」という評判だけで適合性を決めるのは早い。

サーバー側の検証で両者は何が違うか

Turnstileでは、フォームとともに受け取ったトークンを自社サーバーからCloudflareへ送って確かめる。CloudflareのSiteverify手順はサーバー側検証を必須とし、トークンは発行後5分で失効し、検証に使えるのは1回だけだと定める。画面にウィジェットを置くだけでは、フォームの送信先へ直接届くリクエストを判定できない。

reCAPTCHAでも、Googleのウェブサイト評価の手順はバックエンドで評価を作成し、トークンの有効性とスコアを確認するよう求めている。トークンは1回限りで、発行後2分で失効する。操作名を設定する構成では、返された操作名が想定と一致するかも確認する。Googleは検出の改善に向けてユーザーエージェントやIPアドレスなどの追加情報を渡すことも推奨しており、送信する項目はプライバシー要件と併せて決めることになる。

期限切れ、二重送信、評価サービスへの通信障害は、悪意ある送信とは別の問題だ。すべてを同じ拒否画面で処理すると、長い問い合わせを書いていた利用者まで失う可能性がある。検証が終わる前に通知や注文処理を確定させず、失敗時には再試行できる状態を用意することが、どちらの製品でも重要になる。

誤判定の代償はフォームの用途で変わる

フォームのボット判定で正当な問い合わせが止まり、対応機会を失う状況

Turnstileの検証結果を使う構成では、基本となる判断はトークンの検証に成功したかどうかだ。スコア型のreCAPTCHAなら、評価の結果を受けて自社側で通過、追加確認、保留などの処理を分けられる。ただし、スコアを受け取るだけで適切なしきい値が決まるわけではない。判断を細かくするほど、保留した送信を誰がどう扱うかという運用も必要になる。

たとえば条件を厳しくした資料請求フォームで正当な依頼が止まれば、失うのは一件の送信数だけではなく、その依頼に応じる機会だ。反対に、会員登録や取引に関わるフォームで不正な試行を通せば、後段で確認や対処をする負担が増える。これは損失の種類を示す条件付きの例であり、いずれかの製品に特定の誤判定率があるという意味ではない。

遮断した件数だけでは、正当な利用者を止めた数は分からない。届いたスパム、後から正当と確認できた送信、利用者の再試行を分けて見なければ、厳しい設定ほど良く見えてしまう。両製品の検出精度を一律に順位付けする公開データは、この運用条件に代わらない。高リスクの操作では、疑わしい送信を直ちに捨てるか、確認に回せるかが選択を左右する。

フォームの条件別に選ぶ

製品の優劣を一つに決めるより、フォームで避けたい損失から候補を絞るほうが実用的だ。次の整理は検出率の比較結果ではなく、確認した料金条件と判定方法を踏まえた選び方である。

  • 軽量な問い合わせ・登録フォーム:無料プランの設定上限に収まり、検証量の増加による課金を避けたいならTurnstileが第一候補になる。正当な送信が失敗した場合の再試行も考慮する。
  • 高リスクの会員操作・取引関連フォーム:危険度ごとに追加確認や保留を使い分ける運用ができるなら、スコア型のreCAPTCHAが候補になる。評価件数と、保留した送信の処理負担を費用と併せて見る。
  • プライバシー要件が厳しいフォーム:Turnstileを有力候補としつつ、採用前に外部への通信、サーバーから送る情報、利用者への説明を自社の条件に照らす。製品名だけでは判断できない。

どちらの検証も、低頻度で送られるスパムやフォームの内容そのものをすべて判定できるわけではない。必要に応じて送信頻度の制限や内容の確認を組み合わせると、CAPTCHAの判定一つに通過と拒否を委ねずに済む。

関連記事:

共有:

ニュースレターを購読

Web3、AI、暗号資産の最新ニュースを受信箱にお届けします。

0