本文档可帮助您了解 reCAPTCHA for WAF 的功能,并确定哪种功能最适合您的使用场景。
reCAPTCHA for WAF 提供以下功能,可用于与 Web 应用防火墙 (WAF) 服务提供商集成:
功能概览
reCAPTCHA for WAF 集成支持操作令牌、会话令牌、验证页面和 reCAPTCHA 极速版
您可以在单个应用中使用 reCAPTCHA for WAF 的一项或多项功能。 例如,您可以选择为所有页面应用会话令牌,并根据会话令牌的得分将可疑请求重定向到 reCAPTCHA 验证页面。此外,您还可以使用操作令牌执行重要操作,例如结账。如需了解详情,请参阅示例。
下表简要比较了 reCAPTCHA for WAF 的可用功能:
比较类别 | reCAPTCHA 操作令牌 | reCAPTCHA 会话令牌 | reCAPTCHA 质询页面 | reCAPTCHA Express |
---|---|---|---|---|
使用场景 | 用于保护用户操作,例如登录或评论帖子。 | 用于保护网站网域上的整个用户会话。 | 如果您怀疑有垃圾邮件活动定向到您的网站,而您需要筛掉机器人,请使用此设置。
此方法会中断用户的活动,因为用户必须验证人机识别系统质询。 |
如果您的环境不支持集成 reCAPTCHA JavaScript 或移动 SDK,请使用 reCAPTCHA Express。 |
支持的平台 | 网站和移动应用 | 网站 | 网站 | 所有 HTTP 请求。 包括:API、网站、移动应用和 IoT 设备(例如电视和游戏机) |
客户端集成工作量 | 中
手动客户端集成。 |
中
在 WAF 上手动或通过注入方式安装 reCAPTCHA JavaScript。 |
低
由安全政策触发的插页式广告。 |
低
无客户端集成。 |
检测准确率 | 最高
提供客户端、服务器和操作特定信号。 |
高
提供客户端和服务器专用信号。 |
中
提供客户端和服务器专用信号。客户端信号仅在插页式广告中可用。 |
低
仅提供服务器端信号。 |
支持的 reCAPTCHA 版本 | 基于 reCAPTCHA 得分和复选框的密钥 | 基于 reCAPTCHA 得分的密钥 | 嵌入到插页式广告中的基于 reCAPTCHA 验证的密钥 | reCAPTCHA Express 密钥 |
reCAPTCHA 操作令牌
您可以使用 reCAPTCHA 操作令牌来保护重要的用户互动,例如网页和移动应用上的结账。
reCAPTCHA 操作令牌工作流包含以下步骤:
- 当最终用户触发受 reCAPTCHA 保护的操作时,网页或移动应用会将浏览器中收集的信号发送到 reCAPTCHA 以进行分析。
- reCAPTCHA 向网页或移动应用发送操作令牌。
- 将此操作令牌附加到您要保护的请求的标头。
- 当最终用户使用操作令牌请求访问权限时,WAF 插件会解码并验证操作令牌属性,而不是后端应用。
- WAF 插件会根据您配置的安全政策规则或防火墙政策规则(以适用者为准)应用操作。
以下序列图显示了网站的 reCAPTCHA 操作令牌工作流程:
Google Cloud Armor
第三方 WAF 服务提供商
以下序列图显示了移动应用的 reCAPTCHA 操作令牌工作流程:
reCAPTCHA 会话令牌
如果要保护网站网域上的整个用户会话,您可以使用 reCAPTCHA 会话令牌。会话令牌允许您在指定时间段内重复使用现有的 reCAPTCHA 评估,这样特定用户就不需要进一步评估,从而减少了用户卡顿情况和所需的 reCAPTCHA 调用总次数。
为了让 reCAPTCHA 能够了解最终用户的浏览模式,我们建议您在网站的所有网页上使用 reCAPTCHA 会话令牌。
reCAPTCHA 会话令牌工作流包括以下步骤:
- 浏览器从 reCAPTCHA 加载 reCAPTCHA JavaScript。
- 在评估后,reCAPTCHA JavaScript 会在最终用户的浏览器上将会话令牌设置为 Cookie。
- 只要 reCAPTCHA JavaScript 保持活跃状态,最终用户的浏览器就会每 30 分钟存储一次 Cookie 和 reCAPTCHA JavaScript。
- 当用户使用 Cookie 请求访问权限时,WAF 插件会根据安全政策规则或防火墙政策规则验证此 Cookie 并应用操作。
以下序列图显示了 reCAPTCHA 会话令牌工作流程:
Google Cloud Armor
第三方 WAF 插件
reCAPTCHA 质询页面
您可以使用 reCAPTCHA 验证页面功能将传入的请求重定向到 reCAPTCHA,以确定每个请求是否可能具有欺诈或合法性。
这种重定向应用和可能的人机识别系统质询会中断用户的活动。如果您怀疑存在指向您网站的垃圾邮件活动,我们建议您将其用于筛掉机器人。
当最终用户首次访问您的网站时,会发生以下事件:
- 在 WAF 层,用户的请求会重定向到 reCAPTCHA 验证页面。
- reCAPTCHA 会返回嵌入了 reCAPTCHA JavaScript 的 HTML 页面。
- 呈现质询页面后,reCAPTCHA 会评估用户互动。如有必要,reCAPTCHA 会向用户提供人机识别系统验证。
根据评估结果,reCAPTCHA 会执行以下操作:
- 如果用户互动通过评估,reCAPTCHA 会发出豁免 Cookie。浏览器将此豁免 Cookie 附加到用户的后续网站请求,直到该 Cookie 过期。默认情况下,豁免 Cookie 会在 3 小时后过期。
- 如果用户互动未通过评估,reCAPTCHA 不会发出豁免 Cookie。
如果用户使用 GET/HEAD 调用访问网页,reCAPTCHA 会使用豁免 Cookie 重新加载网页。如果用户使用 POST/PUT 调用访问网页,则用户需要点击页面上的“重新加载”链接。
WAF 插件将豁免具有有效豁免 Cookie 的请求,使其不再重定向,并授予对您网站的访问权限。
以下序列图显示了 reCAPTCHA 验证页面工作流:
Google Cloud Armor
第三方 WAF 服务提供商
适用于 WAF 的 reCAPTCHA express
您可以在不支持运行 reCAPTCHA JavaScript 或内置移动 SDK 的环境中(例如 IoT 设备和机顶盒)使用 reCAPTCHA Express 来保护您的应用。您可以将 reCAPTCHA express 与 reCAPTCHA WAF 服务提供商集成,也可以在应用服务器上的独立环境中集成。
reCAPTCHA 极速版仅使用后端信号来生成 reCAPTCHA 风险得分,因此与涉及客户端组件的集成相比,检测准确性较低。您可以使用此得分来评估任何 HTTP 请求。
reCAPTCHA Express 工作流包含以下步骤:
- 当用户请求访问网页时,WAF 插件会发送创建评估的请求。
- reCAPTCHA 会评估用户互动并返回风险得分。
- reCAPTCHA WAF 插件或应用服务器会根据风险得分来允许或阻止访问。
以下序列图显示了 reCAPTCHA 快速工作流:
后续步骤
- 了解 Google Cloud Armor 的令牌属性。
- 在网站上将 reCAPTCHA for WAF 与 Google Cloud Armor 集成。
- 将 reCAPTCHA for WAF 与移动应用上的 Google Cloud Armor 集成。
- 了解 Fastly 的令牌属性。
- 将 reCAPTCHA for WAF 与 Fastly 集成。
- 在应用服务器上设置 reCAPTCHA Express。