このドキュメントは、WAF 用 reCAPTCHA の機能を理解し、ユースケースに最適な機能を判断する際に役立ちます。
WAF 用 reCAPTCHA には、ウェブ アプリケーション ファイアウォール(WAF)サービス プロバイダとの統合に使用できる次の機能があります。
機能の概要
次の表に、reCAPTCHA アクション トークン、reCAPTCHA セッション トークン、reCAPTCHA チャレンジ ページ、reCAPTCHA express の簡単な比較を示します。
比較カテゴリ | reCAPTCHA アクション トークン | reCAPTCHA セッション トークン | reCAPTCHA 課題ページ | reCAPTCHA express |
---|---|---|---|---|
ユースケース | reCAPTCHA アクション トークンを使用して、ログインや投稿へのコメントなどのユーザー アクションを保護します。 | reCAPTCHA セッション トークンを使用して、サイトのドメインでユーザー セッション全体を保護します。 | サイトに対するスパム行為が疑われ、bot を除外する必要がある場合は、reCAPTCHA 課題ページを使用します。 この方法では、ユーザーが CAPTCHA チャレンジを確認する必要があるため、ユーザーのアクティビティが中断されます。 |
環境が reCAPTCHA JavaScript またはモバイル SDK の統合をサポートしていない場合は、reCAPTCHA express を使用します。 |
対応プラットフォーム | ウェブサイトとモバイルアプリ | ウェブサイト | ウェブサイト | API、ウェブサイト、モバイルアプリ、テレビやゲーム機などの IoT デバイス |
統合の作業量 | 中
統合では、次のことを行う必要があります。
|
中
統合では、次のことを行う必要があります。
|
低
統合では、Google Cloud Armor のセキュリティ ポリシー ルールまたはサードパーティの WAF サービス プロバイダ用の reCAPTCHA ファイアウォール ポリシーを構成する必要があります。 |
低
統合では、WAF サービス プロバイダを使用して reCAPTCHA express を構成するか、アプリケーション サーバーから reCAPTCHA にリクエストを行う必要があります。 |
検出精度 | 最高
アクション トークンは個々のユーザー アクションを保護します。 |
高
セッション トークンは、サイトのドメインでのユーザー セッション全体を保護します。 |
中
このプロセスでは、reCAPTCHA 課題ページにリダイレクトされますが、ページ固有のシグナルがすべて受信されない場合があります。その結果、bot 検出の精度が低下する可能性があります。 |
低
クライアント側のシグナルは使用できません。 |
サポートされている reCAPTCHA のバージョン | reCAPTCHA のスコアベース キーとチェックボックス キー | reCAPTCHA スコアベース キー | reCAPTCHA 課題ページでは、最適化されたバージョンの reCAPTCHA を使用して、統合を最小限に抑えます。 | reCAPTCHA スコアベース キー |
1 つのアプリケーションで WAF 用 reCAPTCHA の 1 つ以上の機能を使用できます。たとえば、すべてのページにセッション トークンを適用するように選択でき、セッション トークンのスコアに基づいて、不審なリクエストを reCAPTCHA 課題ページにリダイレクトできます。 また、ご購入手続きなどの重要なアクションにアクション トークンを使用できます。詳細については、例をご覧ください。
reCAPTCHA アクション トークン
reCAPTCHA アクション トークンを使用して、ウェブページやモバイルアプリでの購入手続きなどの重要なユーザー インタラクションを保護できます。
reCAPTCHA action-tokens のワークフローは、次の手順で構成されます。
- エンドユーザーが reCAPTCHA で保護されたアクションをトリガーすると、ウェブページまたはモバイルアプリは、分析のためにブラウザで収集したシグナルを reCAPTCHA に送信します。
- reCAPTCHA は、ウェブページまたはモバイルアプリにアクション トークンを送信します。
- このアクション トークンを、保護するリクエストのヘッダーに添付します。
- エンドユーザーがアクション トークンを使用してアクセスをリクエストすると、WAF サービス プロバイダはバックエンド アプリケーションではなく、アクション トークン属性をデコードして検証します。
- WAF サービス プロバイダは、構成済みのセキュリティ ポリシー ルールまたはファイアウォール ポリシールールに基づいて(いずれか該当する場合)、アクションを適用します。
次のシーケンス図は、ウェブサイト用の reCAPTCHA アクション トークンのワークフローを示しています。
次のシーケンス図は、モバイルアプリ用の reCAPTCHA アクション トークンのワークフローを示しています。
reCAPTCHA セッション トークン
サイトのドメインでユーザー セッション全体を保護する場合は、reCAPTCHA セッション トークンを使用できます。セッション トークンを使用すると、既存の reCAPTCHA 評価を一定期間再利用できるため、特定のユーザーに対するそれ以上の評価が不要になり、ユーザー側の抵抗と必要な reCAPTCHA 呼び出しの総数が減少します。
reCAPTCHA でエンドユーザーのブラウジング パターンを学習できるようにするには、サイトのすべてのウェブページで reCAPTCHA セッション トークンを使用することをおすすめします。
reCAPTCHA セッション トークンのワークフローは次の手順で構成されます。
- ブラウザは reCAPTCHA から reCAPTCHA JavaScript を読み込みます。
- reCAPTCHA JavaScript は、評価後にセッション トークンをエンドユーザーのブラウザの Cookie として設定します。
- エンドユーザーのブラウザは Cookie を保存し、reCAPTCHA JavaScript はアクティブである限り 30 分ごとに Cookie を更新します。
- ユーザーが Cookie を使用してアクセスをリクエストすると、WAF サービス プロバイダがこの Cookie を検証し、セキュリティ ポリシー ルールまたはファイアウォール ポリシールールに基づいてアクションを適用します。
次のシーケンス図は、reCAPTCHA セッション トークンのワークフローを示しています。
reCAPTCHA 課題ページ
reCAPTCHA による確認ページ機能を使用して、受信リクエストを reCAPTCHA にリダイレクトし、各リクエストが不正なものか正当なものかを判断します。
リダイレクトと可能性がある CAPTCHA 課題の適用により、ユーザーのアクティビティが中断されます。サイトに対するスパム行為が疑われる場合は、これを使用して bot を除外することをおすすめします。
エンドユーザー(ユーザー)が初めてサイトにアクセスしたときに、次のイベントが発生します。
- WAF レイヤで、ユーザーのリクエストが reCAPTCHA による確認ページにリダイレクトされます。
- reCAPTCHA が、reCAPTCHA JavaScript が埋め込まれた HTML ページで応答します。
- 確認ページがレンダリングされると、reCAPTCHA がユーザー インタラクションを評価します。必要に応じて、reCAPTCHA が CAPTCHA による確認をユーザーに提供します。
評価の結果に応じて、reCAPTCHA は次の処理を行います。
- ユーザー操作が評価に合格すると、reCAPTCHA は除外 Cookie を発行します。ブラウザは、Cookie が期限切れになるまで、同じサイトに対するユーザーの後続のリクエストにこの除外 Cookie を添付します。デフォルトでは、除外 Cookie は 3 時間後に期限切れになります。
- ユーザーの操作が評価に合格しなかった場合、reCAPTCHA は除外 Cookie を発行しません。
reCAPTCHA は、ユーザーが GET/HEAD 呼び出しを使用してウェブページにアクセスすると、除外 Cookie でウェブページを再読み込みします。ユーザーが POST/PUT 呼び出しを使用してウェブページにアクセスする場合、ユーザーはページの再読み込みリンクをクリックする必要があります。
WAF サービス プロバイダは、有効な除外 Cookie を持つリクエストが再びリダイレクトされるのを除外し、サイトへのアクセスを許可します。
次のシーケンス図は、reCAPTCHA 課題ページのワークフローを示しています。
WAF 用 reCAPTCHA express
reCAPTCHA express を使用すると、reCAPTCHA JavaScript や組み込みモバイル SDK の実行がサポートされていない環境(IoT デバイスやセットトップ ボックスなど)でアプリケーションを保護できます。reCAPTCHA express は、WAF サービス プロバイダを使用して WAF レイヤに設定するか、アプリケーション サーバーのスタンドアロン環境に設定できます。 reCAPTCHA express は、バックエンド シグナルのみを使用して reCAPTCHA リスクスコアを生成します。
reCAPTCHA WAF express ワークフローは、次の手順で構成されます。
- ユーザーがウェブページへのアクセスをリクエストすると、WAF サービス プロバイダは reCAPTCHA への評価リクエストを作成します。
- reCAPTCHA がユーザーの操作を評価し、リスクスコアを送信します。
- WAF サービス プロバイダまたはアプリケーション サーバーは、リスクスコアに基づいてアクセスを許可またはブロックします。
次のシーケンス図は、reCAPTCHA WAF express のワークフローを示しています。
次のステップ
- Google Cloud Armor のトークン属性について学習する。
- ウェブサイトで WAF 用 reCAPTCHA を Google Cloud Armor と統合する。
- モバイルアプリで WAF 用 reCAPTCHA を Google Cloud Armor と統合する。
- Fastly のトークン属性について学習する。
- WAF 用 reCAPTCHA を Fastly と統合する。
- アプリケーション サーバーで reCAPTCHA express を設定する。