Turnstile は、Cloudflare の CAPTCHA 代替です。ウェブサイトやアプリケーションにウィジェットとして埋め込むと、訪問者のブラウザー背景でクライアントサイドの Challenge が実行されます。
Turnstile が Challenge Page と違う点は、Challenge がリクエストを保留せず、ユーザー体験を中断しないことです。ウィジェットはウェブページに埋め込まれ、HTML の一部だけで動きます。そのため、訪問者はすでに遷移先 URL に到達し、ページを表示した状態で Turnstile ウィジェットに出会います。サイト全体へのアクセスを止めるのではなく、ウィジェットが解けるまで、ログインや登録フォームの送信などの特定操作だけを止めます。
ほとんどの場合、訪問者側で追加の操作は不要です。必要なときだけ、進むためにクリックする簡単なチェックボックスを表示します。
Challenge に合格すると、Turnstile は訪問者へクリアランストークンを発行します。ログイン、登録、そのほかのフォーム送信などの機密操作を完了する前に、Siteverify API でこのトークンを検証する必要があります。
ウェブサイトやアプリケーションに実装できるウィジェットは 3 種類ありますが、背後の Challenge ロジックは同じです。
-
Managed(推奨): Managed Challenge Page に近い動きです。訪問者のブラウザーから得たシグナルに応じて Challenge を選び、自動化の疑いがあるときだけ操作を求めます。
-
Non-Interactive: ウィジェットは表示されますが、本人確認のために訪問者が操作する必要はありません。
-
Invisible: ウィジェットは訪問者には見えませんが、Challenge は背景で実行されます。
Cloudflare ダッシュボードでウェブサイトやアプリケーション向けのウィジェットを作成すると、sitekey が発行されます。
sitekey は クライアントサイドレンダリング で使い、<div> コンテナのプレースホルダーに指定します。その <div> のコード断片を、サイトのページやフォームでウィジェットを置きたい場所に挿入します。
ウェブサイトやアプリケーションへのウィジェット実装は、Turnstile のドキュメント を参照してください。