reCAPTCHA ファイアウォール ポリシーの例

このドキュメントでは、reCAPTCHA WAF の機能の実装に基づいて作成できる reCAPTCHA ファイアウォール ポリシーの例を示します。

例 1: アクション トークンを使用した reCAPTCHA ファイアウォール ポリシー

reCAPTCHA アクション トークンを追加して、ログインなどのユーザー アクションを保護できます。 ユーザーがログイン アクションを開始したときに reCAPTCHA Cookie が発行されるように、ホームページに reCAPTCHA アクション トークン スクリプトを統合します。

次のルールを使用して reCAPTCHA ファイアウォール ポリシーを作成します。

  • ルールを適用するパス。この場合は login.php です。
  • アクション トークンのアクション名の属性が保護されているユーザー アクションと一致しない場合、またはスコアが 0.1 以下の場合、アクセスをブロックします。
  gcloud recaptcha firewall-policies create \
      --description="example1 policy" \
      --path="/login.php" \
      --condition="recaptcha.token.action != "login" || recaptcha.score <= 0.1" \
      --actions="block"

次の図は、reCAPTCHA アクション トークン機能を使用するワークフローと、対応する reCAPTCHA ファイアウォール ポリシーを示しています。

例 2: セッション トークンを使用した reCAPTCHA ファイアウォール ポリシー

ユーザーがアクセスする可能性のあるページ(たとえば購入手続きページなど)に、reCAPTCHA セッション トークンを追加して、Cookie が定期的に更新されるようにします。 reCAPTCHA セッション トークン スクリプトを統合して、ユーザーが購入手続きページに移動する前に reCAPTCHA Cookie がアプリケーション バックエンドで発行および更新されるようにします。購入手続きページで reCAPTCHA セッション トークン スクリプトを統合し、Cookie が期限切れになるのを防ぐために、reCAPTCHA Cookie がアプリケーション バックエンドで発行および更新されるようにします。

次のルールを使用して reCAPTCHA ファイアウォール ポリシーを作成します。

  • ルールを適用するパス。この場合は checkout.html です。
  • スコアが 0.1 以下の場合はアクセスをブロックします。
   gcloud recaptcha firewall-policies create \
       --description="example2 policy" \
       --path="/checkout.html" \
       --condition="recaptcha.score <=0.1" \
       --actions="block"

次の図は、reCAPTCHA セッション トークン機能を使用するワークフローと、対応する reCAPTCHA ファイアウォール ポリシーを示しています。

例 3: 課題ページを使用した reCAPTCHA ファイアウォール ポリシー

reCPTCHA 課題ページ機能を追加して、ユーザーのリクエストが不正なものか正当なものかどうかを判断するインターステイシャル ページにユーザーをリダイレクトすることができます。

保護するページで、ユーザーを本人確認ページにリダイレクトする reCAPTCHA ファイアウォール ポリシールールを作成します。

  • 保護されたページの場合、トークンが有効でない場合は、課題ページにリダイレクトします。この場合は index.html です。
  • スコアが 0.1 以下の場合、ユーザーをエラーページにリダイレクトします。

     gcloud recaptcha firewall-policies create \
         --description="example3 policy" \
         --path="/index.html" --condition="!recaptcha.token.valid" --actions="redirect" \
         --path="/index.html" --condition="recaptcha.score <= 0.1" --actions="substitute { path: /bot_error }"
    

次の図は、reCAPTCHA 課題ページ機能を使用するワークフローと、対応する reCAPTCHA ファイアウォール ポリシーを示しています。

例 4: アクション トークンと課題ページを使用した reCAPTCHA ファイアウォール ポリシー

ウェブページごとに異なる保護レベルを使用する場合、reCAPTCHA WAF の複数の機能を使用できます。たとえば、ページでアクション トークンまたはセッション トークン機能を使用して、ページreCAPTCHA スコアを使用して受信トラフィックを評価するために、ます。また、ユーザーが bot でないことを確認するページで本人確認ページ機能を使用します。

reCAPTCHA アクション トークンを追加して、ログインなどのユーザー アクションを保護できます。 ユーザーがログイン アクションを開始したときに reCAPTCHA Cookie が発行されるようにするには、保護されるログイン アクションの前に、ページに reCAPTCHA アクション トークン スクリプトを統合します。たとえば、ホームページなどです。ダウンロード ページで、ユーザーを課題ページにリダイレクトするには、reCAPTCHA ファイアウォール ポリシールールを使用します。

次のルールを使用して reCAPTCHA ファイアウォール ポリシーを作成します。

  • ルールを適用するパス。この場合は login.php です。
  • アクション トークンのアクション名属性が保護されているユーザー アクションと一致しない場合、または評価タイプが ACTION でない場合、またはスコアが 0.1 以下の場合、アクセスをブロックします。
  • コンテンツをダウンロードしたときにユーザーを課題ページにリダイレクトするには、ユーザーをリダイレクトするファイアウォール ポリシールールを追加します。
  • スコアが 0.1 以下の場合、または評価タイプが CHALLENGEPAGE でない場合、ユーザーをエラーページにリダイレクトします。
    gcloud recaptcha firewall-policies create --description="example4 policy"
        --path="/login.php" --condition="recaptcha.token.action != "login" || recaptcha.assessment_type != AssessmentType.ACTION || recaptcha.score <= 0.1" --actions="block"
        --path="/content/example.pdf" --condition="recaptcha.assessment_type != AssessmentType.CHALLENGEPAGE" --actions="redirect"
        --path="/content/example.pdf" --condition="recaptcha.score <= 0.1 || recaptcha.assessment_type != AssessmentType.CHALLENGEPAGE" --actions="substitute { path: /bot_error }"

次の図は、reCAPTCHA アクション トークンと reCAPTCHA 課題ページの機能を使用するワークフローと、対応する reCAPTCHA ファイアウォール ポリシーを示しています。

例 5: WAF Express 保護と本人確認ページを使用した reCAPTCHA ファイアウォール ポリシー

ユーザーに心理的負荷をかけることなくユーザー操作を評価し、スコアが低い場合はユーザーを本人確認ページにリダイレクトするには、WAF Express 保護用 reCAPTCHA Enterprise を追加します。たとえば、データ スクレイピングを防ぐために、カタログページへのトラフィックをブロックできます。

次のルールを使用して reCAPTCHA ファイアウォール ポリシーを作成します。

  • ルールを適用する必要があるパス。
  • スコアが 0.3 以下の場合は、ユーザーを本人確認ページにリダイレクトします。

次の例では、スコアが 0.1 未満の場合に、/catalog1/itemlist.html に対するトラフィック ターゲティングをリダイレクトする reCAPTCHA ファイアウォール ポリシーを作成します。

    gcloud recaptcha firewall-policies create \
        --description="example5 policy" \
        --path="/catalog1/itemlist.html" \
        --condition="recaptcha.score <= 3" \
        --actions="redirect"

次のステップ