本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
的工作原理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/html的Accept标头,则响应包含 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 规则操作.