機器人控制範例:為封鎖的使用者代理程式建立例外 - AWS WAF、 AWS Firewall Manager、和 AWS Shield Advanced

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

機器人控制範例:為封鎖的使用者代理程式建立例外

如果錯誤地封鎖來自某些非瀏覽器使用者代理程式的流量,您可以將違規的 AWS WAF Bot Control 規則設定為「計數」,然後將規則SignalNonBrowserUserAgent的標籤與例外條件合併,以建立例外。

注意

行動應用程式通常具有非瀏覽器使用者代理程式,依預設會封鎖SignalNonBrowserUserAgent規則。

下列規則使用「機器人控制」受管理規則群組,但會覆寫「SignalNonBrowserUserAgent要計數」的規則動作。信號規則像往常一樣將其標籤應用於匹配請求,但只對它們進行計數,而不是執行其通常的塊操作。

{ "Name": "AWS-AWSBotControl-Example", "Priority": 5, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesBotControlRuleSet", "ManagedRuleGroupConfigs": [ { "AWSManagedRulesBotControlRuleSet": { "InspectionLevel": "COMMON" } } ], "RuleActionOverrides": [ { "ActionToUse": { "Count": {} }, "Name": "SignalNonBrowserUserAgent" } ], "ExcludedRules": [] } }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSBotControl-Example" } }

下列規則會比對機器人控制SignalNonBrowserUserAgent規則新增至其相符 Web 要求的訊號標籤。在信號請求中,此規則會阻止所有,但具有我們要允許的用戶代理的用戶代理。

下列規則必須在 Web ACL 處理順序中的前一個「機器人控制」受管理規則群組之後執行。

{ "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" } }