CAPTCHA 和 Challenge 操作行为 - Amazon WAF、Amazon Firewall Manager、Amazon Shield Advanced 和 Amazon Shield 网络安全分析器
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

介绍 Amazon WAF 的全新控制台体验

现在,您可以使用更新后的体验访问控制台中任意位置的 Amazon WAF 功能。有关更多详细信息,请参阅 使用更新的控制台体验

CAPTCHA 和 Challenge 操作行为

本节介绍了 CAPTCHA 和 Challenge 操作的作用。

当 web 请求与规则的检查条件相匹配 CAPTCHA 或 Challenge 操作时,Amazon WAF 将根据其令牌状态和免疫时间配置来决定如何处理请求。Amazon WAF 还会考虑请求是否可以处理验证码拼图或质询脚本插页式广告。这些脚本被设计为作为 HTML 内容处理,只有期望 HTML 内容的客户端才能正确处理它们。

注意

当您在其中一个规则中使用 CAPTCHA 或 Challenge 规则操作或在规则组中将其作为规则操作覆盖时,您需要支付额外费用。有关更多信息,请参阅 Amazon WAF 定价

操作如何处理 web 请求

Amazon WAF 按如下方式对 web 请求应用 CAPTCHA 或 Challenge 操作:

  • 有效令牌:Amazon WAF 处理方式与 Count 操作类似。Amazon WAF 应用您为规则操作配置的所有标签和请求自定义设置,然后使用保护包(web ACL)中的其余规则继续评估请求。

  • 令牌丢失、无效或已过期:Amazon WAF 停止对请求的保护包(web ACL)评估,并阻止请求到达预期目标。

    Amazon WAF 会生成一个响应,然后将其发送回客户端,具体取决于规则操作类型:

    • Challenge:Amazon WAF 在响应字段中包含以下内容:

      • 值为 challenge 的标头 x-amzn-waf-action

        注意

        对于在客户端浏览器中运行的 Javascript 应用程序,此标头仅在应用程序的域中可用。标头不可用于跨域检索。有关详细信息,请参阅以下部分。

      • HTTP 状态代码。202 Request Accepted

      • 如果请求包含值为 text/htmlAccept 标头,则响应包含具有质询脚本的 JavaScript 网页插页式广告。

    • CAPTCHA:Amazon WAF 在响应字段中包含以下内容:

      • 值为 captcha 的标头 x-amzn-waf-action

        注意

        对于在客户端浏览器中运行的 Javascript 应用程序,此标头仅在应用程序的域中可用。标头不可用于跨域检索。有关详细信息,请参阅以下部分。

      • HTTP 状态代码 405 Method Not Allowed

      • 如果请求包含值为 text/htmlAccept 标头,则响应包含具有验证码脚本的 JavaScript 网页插页式广告。

要在保护包(web ACL)或规则级别配置令牌到期时间,请参阅 在 Amazon WAF 中设置时间戳过期和令牌免疫时间

在客户端浏览器中运行的 JavaScript 应用程序无法使用标头

当 Amazon WAF 使用验证码或质询响应来响应客户端请求时,它不包括跨源资源共享 (CORS) 标头。CORS 标头是一组访问控制标头,它们告诉客户端 web 浏览器JavaScript 应用程序可以使用哪些域、HTTP 方法和 HTTP 标头。如果没有 CORS 标头,在客户端浏览器中运行的 JavaScript 应用程序就无法访问 HTTP 标头,因此无法读取 CAPTCHA 和 Challenge 响应中提供的 x-amzn-waf-action 标头。

质询和验证码插页式广告的用途

当质询插页式广告运行时,在客户端成功响应之后,如果它还没有令牌,则插页式广告会为其初始化一个令牌。然后,它会使用质询解题时间戳更新令牌。

当验证码插页式广告运行时,如果客户端还没有令牌,验证码插页式广告会首先调用质询脚本来质询浏览器并初始化令牌。然后,插页式广告运行了验证码拼图。当最终用户成功完成拼图后,插页式广告会使用验证码解算时间戳更新令牌。

无论哪种情况,在客户端成功响应并且脚本更新令牌后,脚本都会使用更新的令牌重新提交原始 web 请求。

您可以配置 Amazon WAF 如何处理令牌。有关信息,请参阅 令牌在 Amazon WAF 智能威胁缓解中的使用