如何使用 AWS WAF 阻止不含用户代理标头的 HTTP 请求?
3 分钟阅读
0
我想限制不包含特定用户代理或请求中包含特定用户代理标头值的 HTTP 请求。
简短描述
默认情况下,AWS WAF 筛选器不检查 HTTP 请求是否包含参数。要检查是否存在 HTTP 请求参数,请执行以下操作:
使用 AWS 托管式规则阻止不包含用户代理标头的请求。
–或者–
阻止不包含用户代理标头的请求,如果请求包含使用自定义规则的特定用户代理,则阻止流量。
解决方法
使用 AWS 托管式规则阻止不包含用户代理标头的请求
使用适用于 AWS WAF 的 AWS 托管式规则,阻止不包含用户代理标头的 HTTP 请求,而无需编写自己的规则。
**注意:**托管式规则受版本更改和过期限制。有关更多信息,请参阅处理托管式规则组版本的最佳实践。
以下规则用于检查缺少 HTTP 用户代理标头的请求,以及似乎不是来自 Web 浏览器的用户代理字符串的请求:
NoUserAgent_HEADER
此规则来源于核心规则集(CRS)托管式规则组。此规则用于检查缺少 HTTP 用户代理标头的请求。
SignalNonBrowserUserAgent
此规则来源于 AWS WAF Bot Control 规则组。此规则用于检查似乎不是来自 Web 浏览器的用户代理字符串,包括没有用户代理的请求。
将 AWS 托管式规则组添加到您的 Web ACL
- 打开 AWS WAF 控制台。
- 在导航窗格中的 AWS WAF 下,选择 Web ACL。
- 对于 Region(区域),选择您创建 Web ACL 的 AWS 区域。
**注意:**如果您的 Web ACL 是为 Amazon CloudFront 设置的,请选择 Global(全球)。 - 选择您的 Web ACL。
- 选择 Rules(规则),然后选择 Add Rules(添加规则)。从下拉列表中选择 Add managed rule groups(添加托管规则组)。
- 展开 AWS managed rule groups(AWS 托管规则组)部分。
- 找到规则组并打开 Add to web ACL(添加到 Web ACL)。
例如,您可以启用 Add to web ACL(添加到 Web ACL),来添加包含 NoUserAgent_HEADER 规则的 Core rule set(Core 规则集)。 - (可选)选择 Edit(编辑)以查看和修改规则组的设置。
- 选择 Add rules(添加规则)。
- 选择 Save(保存)。
要编辑 Web ACL 中的现有 AWS 托管规则组
- 打开 AWS WAF 控制台。
- 在导航窗格中的 AWS WAF 下,选择 Web ACL。
- 对于 Region(区域),选择您创建 Web ACL 的 AWS 区域。
**注意:**如果您的 Web ACL 是为 Amazon CloudFront 设置的,请选择 Global(全球)。 - 选择您的 Web ACL。
- 选择 Rules(规则),然后选择 Edit(编辑)以查看和修改设置。
**注意:**有关编辑设置的更多信息,请参阅使用托管式规则组。 - 完成编辑后,选择 Save(保存)。
如果您在使用 AWS 托管式规则组时遇到误报情况,请参阅适用于 AWS WAF 的 AWS 托管式规则。
使用规则组阻止不包含用户代理标头的请求
要使用自定义规则阻止不包含用户代理标头的请求,请执行以下操作:
- 打开 AWS WAF 控制台。
- 在导航窗格中的 AWS WAF 下,选择 Web ACL。
- 对于 Region(区域),选择您创建 Web ACL 的 AWS 区域。
**注意:**如果您的 Web ACL 是为 Amazon CloudFront 设置的,请选择 Global(全球)。 - 选择您的 Web ACL。
- 选择 Rules(规则),然后选择 Add Rules, Add my own rules and rule groups(添加规则、添加我自己的规则和规则组)。
- 对于 Rule type(规则类型),选择 Rule Builder(规则生成器)。
- 对于 Name(名称),输入用于标识此规则的名称。
- 对于 Type(类型),选择 Regular rule(常规规则)。
- 对于 If a request(如果请求),选择 doesn’t match the statement(NOT)(与语句不匹配(NOT))。
- 在 Statement(语句)上,对于 Inspect(检查),选择 Single header(单标头)。
对于 Header field name(标头字段名称),输入字段的名称。例如:User-Agent(用户代理)。
对于 Match type(匹配类型),选择 Size greater than(大小大于)。
对于 Size in bytes(大小(以字节为单位)),请输入 0(零)。
(可选)选择 Text transformation(文本转换)或选择 None(无)。 - 对于 Action(操作),选择 Block(阻止)。
- 选择 Add Rule(添加规则)。
- (可选)对于 Set Rule Priority(设置规则优先级),请选择您的规则并移动其优先级。规则将按照出现的顺序进行处理。有关更多信息,请参阅 Web ACL 中规则和规则组的处理顺序。
- 选择 Save(保存)。
如果请求包含使用自定义规则的特定用户代理,则阻止流量
要在请求包含使用自定义规则的特定用户代理时阻止流量,请执行以下操作:
- 打开 AWS WAF 控制台。
- 在导航窗格中的 AWS WAF 下,选择 Web ACL。
- 对于 Region(区域),选择您创建 Web ACL 的 AWS 区域。
**注意:**如果您的 Web ACL 是为 Amazon CloudFront 设置的,请选择 Global(全球)。 - 选择您的 Web ACL。
- 选择 Rules(规则),然后选择 Add Rules, Add my own rules and rule groups(添加规则、添加我自己的规则和规则组)。
- 对于 Rule type(规则类型),选择 Rule Builder(规则生成器)。
- 对于 Name(名称),输入用于标识此规则的名称。
- 对于 Type(类型),选择 Regular rule(常规规则)。
- 对于 If a request(如果请求),选择 matches a statement(与语句匹配)。
- 在 Statement(语句)上,对于 Inspect(检查),选择 Single header(单标头)。
对于 Header field name(标头字段名称),输入字段的名称。例如:User-Agent(用户代理)。
对于 Match type(匹配类型),选择 Contains string(包含字符串)。
对于 String to match(要匹配的字符串),输入要阻止的特定用户代理的值。
(可选)选择 Text transformation(文本转换)或选择 None(无)。 - 对于 Action(操作),选择 Block(阻止)。
- 选择 Add Rule(添加规则)。
- (可选)对于 Set Rule Priority(设置规则优先级),请选择您的规则并移动其优先级。规则将按照出现的顺序进行处理。有关更多信息,请参阅 Web ACL 中规则和规则组的处理顺序。
- 选择 Save(保存)。
没有评论
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前