インタースティシャル Challenge Page(訪問者が遷移先 URL に到達する前に表示される全画面)は、Cloudflare が訪問者の正当性を確認するあいだ、訪問者とサイト(またはアプリケーション)の間のゲートとして機能します。
Challenge Page はリクエストを保留し、ブラウザー環境に自動化の兆候がないかを評価して Challenge を出し、訪問者が遷移先 URL に進むのをいったん止めます。Challenge に合格しないと、訪問者は目的のページに到達できません。ブラウザー環境から得られるシグナルによっては、チェックボックスの選択やボタンのクリックなど、追加確認のための操作を求められることがあります。
WAF カスタムルール を作成すると、Web サイトまたはアプリケーションに Challenge Page を実装できます。
チャレンジは、Web Application Firewall(WAF)、Bot Management、または Rate limiting のルールによってトリガーされます。
Challenge Page の操作量と表示の目立ち方は、サイトまたはアプリケーション向けの WAF ルールを作成するときに選ぶ Action によって決まります。
次の Challenge タイプは、Challenge Page 用の WAF ルールを作成するときに選べるアクションです。
非インタラクティブ Challenge では、埋め込んだ JavaScript 経由でブラウザーのシグナルから得た限られた情報をもとに、Cloudflare が訪問者が自動化されているかを判定します。その後、訪問者の操作は不要で、ブラウザーが JavaScript を処理するだけの Challenge Page を表示します。
訪問者は、ブラウザーが JavaScript の処理を終えるまで待つ必要があります。通常は 5 秒未満です。
Challenge に合格すると、元のリクエストは遷移先 URL へ続きます。Challenge に失敗した場合、または完了できない場合は、別のインタースティシャル Challenge Page が表示されます。
Managed Challenge では、ブラウザーのシグナルから分かるリクエストの特性に応じて、Cloudflare が訪問者へ出す Challenge の種類を動的に選びます。CAPTCHA ↗ を避けやすくなり、インターネット全体で人が CAPTCHA を解く時間も減ります。
人間の訪問者のほとんどは自動で確認され、Challenge Page には Successful と表示されます。ただし、訪問者のブラウザーから人以外の属性が検出された場合は、Challenge を解くための操作が必要になることがあります。
ほとんどの WAF ルールには Managed Challenge を推奨します。互換性の問題が特にない限り、ほかの Challenge タイプは使わないでください。
インタラクティブ Challenge Page では、合格するために訪問者の操作が必要です。
Cloudflare は、常に Managed Challenge の利用を推奨します。詳細は Cloudflare のブログ記事 ↗ を参照してください。
Challenge Page はリクエストの流れを中断し、ユーザーのブラウザーが描画して解くための完全な HTML ページを返します。ブラウザーが HTML 以外のレスポンス(AJAX や XHR(fetch)リクエストなど)を期待している場合、この仕組みは失敗します。
SPA(シングルページアプリケーション)や API 連携を壊さずに API 呼び出しを保護するには、Turnstile の Pre-clearance を使うことを推奨します。
Pre-clearance を有効にすると、最初の HTML ページで人の確認が成功したあと、Turnstile ウィジェットが持続的なクリアランスクッキー(cf_clearance)を発行します。このクッキーにより、WAF ルールで保護した機密性の高い API エンドポイントでも、訪問者はあらかじめクリア済みとして操作できます。リクエストを中断する Challenge Page を返さずに、きめ細かいセキュリティを適用できます。
実装の詳細は Turnstile の Pre-clearance の案内 を参照してください。