本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon WAF机器人控制示例:为被封禁的用户代理创建例外
如果机器人被错误地屏蔽,你可以通过排除违规行为来创建异常Amazon WAF机器人控制规则,然后将规则标签与例外条件相结合。
以下规则使用 Bot Control 托管规则组,但更改了的规则操作SignalNonBrowserUserAgent计算方法是将其排除在正常的规则组处理之外。信号规则像往常一样将其标签应用于匹配的请求,但只计算它们,而不是执行通常的阻塞操作。
{ "Name": "AWS-AWSBotControl-Example", "Priority": 5, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesBotControlRuleSet", "ExcludedRules": [ { "Name": "SignalNonBrowserUserAgent" } ] } }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSBotControl-Example" } }
以下规则与之前的 Bot Control 排除规则添加到其匹配的 Web 请求中的信号标签相匹配。在信号请求中,此规则会阻止除具有您想要允许的用户代理的请求以外的所有请求。
以下规则必须在 Web ACL 处理顺序中的上述 Bot Control 托管规则组之后运行。
{ "Name": "match_rule", "Statement": { "AndStatement": { "Statements": [ { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:managed:aws:bot-control:signal:non_browser_user_agent" } }, { "NotStatement": { "Statement": { "ByteMatchStatement": { "FieldToMatch": { "SingleHeader": { "Name": "user-agent" } }, "PositionalConstraint": "EXACTLY", "SearchString": "PostmanRuntime/7.29.2", "TextTransformations": [ { "Priority": 0, "Type": "NONE" } ] } } } } ] } }, "RuleLabels": [], "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "match_rule" } }