本文档展示了 reCAPTCHA 防火墙政策示例,您可以根据 reCAPTCHA WAF 功能的实现情况创建这些政策。
示例 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 会话令牌脚本,以便在应用后端颁发和刷新 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"