的工作原理Amazon WAFCAPTCH - Amazon WAF、Amazon Firewall Manager 和 Amazon Shield Advanced
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

的工作原理Amazon WAFCAPTCH

Amazon WAF CAPTCHA是一个标准的规则操作,因此它相对容易实现。要使用CAPTCHA,您可以为规则创建检查标准以确定要质疑的请求,然后指定规则操作CAPTCHA. 有关规则操作选项的一般信息,请参阅Amazon WAF 规则操作.

注意

当您使用 CAPTCHA 规则操作时,您需要支付额外费用。有关更多信息,请参阅 Amazon WAF 定价

CAPTCHA令牌和令牌到期时间

Amazon WAF CAPTCHA使用令牌来跟踪对以下内容的成功响应CAPTCHA挑战。当用户解决问题时CAPTCHA挑战,Amazon自动生成和加密CAPTCHA令牌并将其作为 cookie 发送给客户端。然后,当客户端发送请求时,它包括加密的CAPTCHA请求中的令牌。根据需要,Amazon WAF自动解密令牌并验证其是否有效CAPTCHA令牌。的全部内容CAPTCHA令牌和有关加密过程的详细信息尚未公开。

令牌包括上次成功响应质询的时间戳。用户成功解决问题后CAPTCHA挑战,在规则出台之前,客户的请求不会再次受到质疑CAPTCHA操作确定他们的令牌已过期。

令牌免疫时间

Amazon WAF使用以下方法计算代币到期时间CAPTCHA免疫时间配置。这是客户免于收到新证书的时长CAPTCHA在他们成功完成挑战后进行挑战。默认的免疫时间为 300 秒。有效值范围为 60 到 259,200 秒或三天。

您可以配置CAPTCHA网络 ACL 中的免疫时间CAPTCHA配置和规则的配置中CAPTCHA动作设置。规则级别设置覆盖 Web ACL 设置。对于 aCAPTCHA规则组内的规则,如果你没有定义规则的免疫时间,它将继承CAPTCHA来自您使用规则组的每个 Web ACL 的配置。

您可以使用 Web ACL 和规则级别免疫时间设置进行调整CAPTCHA行为。例如,您可以配置一条规则,以较低的免疫时间控制对高度敏感数据的访问,而对其他规则使用更高的免疫时间。求解CAPTCHA挑战可能会降低客户的网站体验。调整规则中的免疫时间设置可以帮助你减轻对客户体验的影响,同时仍然提供你想要的保护。

有关配置免疫时间的信息,请参阅配置CAPTCHA免疫time.

CAPTCHA操作行为

当 Web 请求与规则的检查标准匹配时CAPTCHA操作,Amazon WAF根据请求的状态确定如何处理请求CAPTCHA令牌,规则的CAPTCHA免疫时间配置,以及请求是否可以处理CAPTCHA页面

Amazon WAF适用于CAPTCHA对 Web 请求的操作如下所示:

  • 有效CAPTCHA代币–Amazon WAF应用您为规则操作配置的所有标签和请求自定义,然后使用 Web ACL 中的其余规则继续评估请求。

  • 缺失、无效或过期CAPTCHA代币–Amazon WAF停止请求的 Web ACL 评估,并且阻止请求进入预期目的地。

    Amazon WAF 会生成一个响应,然后将其发送回客户端,其中包括以下内容:

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

    • HTTP 状态代码 405 Method Not Allowed

    • 如果请求包含值为 text/htmlAccept 标头,则响应包含 CAPTCHA 质询。

    Amazon WAF仅当请求包含质询时,才在响应中包含质询Accept值为的标题text/html. 这些区域有:CAPTCHA挑战被设计为作为 HTML 内容处理,只有期待 HTML 内容的客户端才能正确处理。

    客户端有可能接受 HTML,但仍然无法处理Amazon WAF CAPTCHA挑战。例如,网页上带有小 iFrame 的小部件可能接受 HTML,但无法显示质询或处理质询。

CAPTCHA日志和指标中的操作

这些区域有:CAPTCHA动作可以是非终止动作,比如Count,或者终止行动,比如Block要么Allow.

  • 有效CAPTCHA代币— 当操作找到有效令牌且未阻止请求时,Amazon WAF按如下方式捕获指标和日志:

    • 增加以下各项的指标CaptchaRequests而且对于RequestsWithValidCaptchaToken.

    • 将比赛记录为nonTerminatingMatchingRules带有操作的条目CAPTCHA. 以下列表显示了此类比赛的日志部分。

      "nonTerminatingMatchingRules": [ { "ruleId": "captcha-rule", "action": "CAPTCHA", "ruleMatchDetails": [], "captchaResponse": { "responseCode": 0, "solveTimestamp": 1632420429 } } ]
  • 缺失、无效或过期CAPTCHA代币— 当操作因令牌丢失或无效而阻止请求时,Amazon WAF按如下方式捕获指标和日志:

    • 递增以下各项的指标CaptchaRequests.

    • 将比赛记录为CaptchaResponse使用 HTTP 的条目405状态代码。日志显示请求是否缺失CAPTCHA令牌或令牌已过期。日志还表明是否Amazon WAF发送了CAPTCHA向客户发送挑战页面。以下列表显示了此类比赛的日志部分。

      "terminatingRuleId": "captcha-rule", "terminatingRuleType": "REGULAR", "action": "CAPTCHA", "terminatingRuleMatchDetails": [], ... "responseCodeSent": 405, ... "captchaResponse": { "responseCode": 405, "solveTimestamp": 0, "failureReason": "TOKEN_MISSING" }

有关以下内容的信息Amazon WAF日志,请参阅记录 Web ACL 流量.

有关的信息Amazon WAF指标,请参阅Amazon WAF 指标和维度.

有关规则操作选项的信息,请参阅Amazon WAF 规则操作.