reCAPTCHA 防火墙政策示例

本文档展示了您可以根据 reCAPTCHA WAF 功能的实现创建的 reCAPTCHA 防火墙政策示例。

示例 1:包含 action-token 的 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:包含 session-token 的 reCAPTCHA 防火墙政策

您可以在用户可能访问的页面(例如结账页)上添加 reCAPTCHA 会话令牌,以便 Cookie 定期刷新。集成 reCAPTCHA 会话令牌脚本,以便在用户进入结账页之前,在应用后端发出并刷新 reCAPTCHA Cookie。在结账页上,集成 reCAPTCHA 会话令牌脚本,以便在应用后端发出 reCAPTCHA Cookie 并刷新,防止 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 防火墙政策

如果您希望将用户重定向到插页,以便确定用户请求是否可能存在欺诈性或合法性,则可以添加 reCAPTCHA 验证页面功能。

对于要保护的页面,请创建 reCAPTCHA 防火墙政策规则,将用户重定向到质询页面:

  • 对于受保护的页面,如果令牌无效,则将用户重定向到质询页面。在此示例中为 index.html
  • 如果得分小于或等于 0.1,则将用户重定向到错误页面。

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

下图显示了使用 reCAPTCHA 验证页面功能和相应 reCAPTCHA 防火墙政策的工作流:

示例 4:包含操作令牌和质询页面的 reCAPTCHA 防火墙政策

如果您希望跨网页使用不同的保护级别,可以使用 reCAPTCHA WAF 的一项多项功能。例如,您可以在页面上使用操作令牌或会话令牌功能,根据 reCAPTCHA 得分评估传入流量,并在您希望确保用户不是机器人的页面上使用质询页面功能。

您可以添加 reCAPTCHA 操作令牌来保护用户操作(例如登录)。为确保在用户发起登录操作时发出 reCAPTCHA Cookie,请在页面上集成 reCAPTCHA 操作令牌脚本,然后再进行受保护的登录操作。例如,首页。在下载页面上,如需将用户重定向到验证页面,请使用 reCAPTCHA 防火墙政策规则。

使用以下规则创建 reCAPTCHA 防火墙政策:

  • 必须应用规则的路径。在此示例中为 login.php
  • 如果操作令牌的操作名称属性与受保护的用户操作不匹配,或者评估类型不是 ACTION,或者得分小于或等于 0.1,则阻止访问。
  • 如需在用户想要下载内容时将其重定向到验证页面,请添加防火墙政策规则来重定向用户。
  • 如果得分小于或等于 0.1 或评估类型不是 CHALLENGEPAGE,则将用户重定向到错误页面。
    gcloud recaptcha firewall-policies create --description="example4-1 policy"
        --path="/login.php" --condition="recaptcha.token.action != "login" || recaptcha.assessment_type != AssessmentType.ACTION || recaptcha.score <= 0.1" --actions="block"
    gcloud recaptcha firewall-policies create --description="example4-2 policy"
        --path="/content/example.pdf" --condition="recaptcha.assessment_type != AssessmentType.CHALLENGEPAGE" --actions="redirect"
    gcloud recaptcha firewall-policies create --description="example4-3 policy"
        --path="/content/example.pdf" --condition="recaptcha.score <= 0.1 || recaptcha.assessment_type != AssessmentType.CHALLENGEPAGE" --actions="substitute { path: /bot_error }"

下图显示了使用 reCAPTCHA 操作令牌和 reCAPTCHA 验证页面功能的工作流,以及相应的 reCAPTCHA 防火墙政策:

示例 5:具有 WAF 极速保护和验证的 reCAPTCHA 防火墙政策页面

如果您希望在不影响用户顺畅的情况下评估用户互动,然后在得分较低时将用户重定向到验证页面,则可以添加 reCAPTCHA WAF express protection 功能。例如,为了防止数据抓取,您需要屏蔽流向目录页面的流量。

使用以下规则创建 reCAPTCHA 防火墙政策:

  • 必须应用规则的路径。
  • 如果得分小于或等于 0.3,则将用户重定向到质询页面。

以下示例创建了一项 reCAPTCHA 防火墙政策,以在得分小于 0.3 时重定向针对 /catalog1/itemlist.html 的流量目标。

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

后续步骤