Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何使用 AWS WAF 阻止不含用户代理标头的 HTTP 请求?
2 分钟阅读
0
我想使用 AWS WAF 来限制请求中不包含特定用户代理值的 HTTP 请求。或者,限制包含特定用户代理标头值的请求。
简短描述
默认情况下,AWS WAF 筛选器不检查 HTTP 请求是否包含参数。要使用 AWS WAF 基于用户代理标头阻止 HTTP 请求,请执行以下操作之一:
- 使用 AWS 托管规则阻止不包含用户代理标头的请求。
- 使用自定义规则阻止不包含用户代理标头的请求。
- 使用自定义规则阻止包含特定用户代理标头的请求。
解决方法
使用 AWS 托管规则阻止不包含用户代理标头的请求
如果您使用适用于 AWS WAF 的 AWS 托管规则,则无需编写自己的规则。
**注意:**AWS 托管规则受版本更改和过期限制。有关详细信息,请参阅在 AWS WAF 中使用版本控制的托管规则组。
NoUserAgent_HEADER 规则用于检查不包含 HTTP 用户代理标头的请求。SignalNonBrowserUserAgent 规则用于检查疑似不是来自 Web 浏览器的用户代理字符串,包括不含用户代理的请求。
将 AWS 托管规则组添加到 Web ACL
完成以下步骤:
- 打开 AWS WAF 控制台。
- 在导航窗格中,选择 AWS WAF。
- 选择 Resources & protection packs(资源和保护包)。
- 找到您的保护包,然后选择 Rules(规则)旁边的 View and edit(查看和编辑)。
- 在右侧窗格中,选择 Add rules(添加规则)。
选择 AWS-managed rule group(AWS 托管规则组),然后单击 Next(下一步)。 - 选择要添加的规则组。
- 选择 Add to web ACL(添加到 Web ACL)。
**注意:**对于 Core rule set(Core 规则集),选择 Add to web ACL(添加到 Web ACL)。Core rule set(Core 规则集)包含 NoUserAgent_HEADER 规则。 - 选择 Create rule(创建规则)。
编辑 Web ACL 中的现有 AWS 托管规则组
完成以下步骤:
- 打开 AWS WAF 控制台。
- 在导航窗格中,选择 AWS WAF。
- 选择 Resources & protection packs(资源和保护包)。
- 找到您的保护包,然后选择 Rules(规则)旁边的 View and edit(查看和编辑)。
- 在右侧窗格中,选择您的 AWS Managed Rule Group(AWS 托管规则组)。
- 在 Rule Overrides(规则覆盖)部分中,您可以编辑设置。
**注意:**有关编辑设置的详细信息,请参阅使用托管规则组。 - 选择 Save Rule(保存规则)。
如果您在使用 AWS 托管规则组时遇到误报,请参阅适用于 AWS WAF 的 AWS 托管规则。
使用自定义规则阻止不包含用户代理标头的请求
完成以下步骤:
- 打开 AWS WAF 控制台。
- 在导航窗格中,选择 AWS WAF。
- 选择 Resources & protection packs(资源和保护包)。
- 找到您的保护包,然后选择 Rules(规则)旁边的 View and edit(查看和编辑)。
- 在右侧窗格中,选择 Add rules(添加规则)。
选择 Custom rule(自定义规则),然后单击 Next(下一步)。
再次选择 Custom rule(自定义规则),然后单击 Next(下一步)。 - 将规则 Action(操作)设置为 BLOCK(阻止)。
- 输入您的 Rule name(规则名称)。
- 对于 If a request(如果请求),展开下拉列表并选择 does not match the statement (NOT)(与语句不匹配 (NOT))。
- 对于 Inspect(检查),选择 Single header(单个标头)。
- 在 NOT Statement(NOT 语句)下,完成以下操作:
对于 Header field name(标头字段名称),输入字段的名称。例如,User Agent(用户代理)。
对于 Match type(匹配类型),选择 Size greater than(大小大于)。
对于 Size in bytes(大小(以字节为单位)),输入 0。
(可选)选择 Text transformation(文本转换)或 None(无)。 - 选择 Create Rule(创建规则)。
- (可选)要设置规则优先级,请在右侧窗格中选择 Edit Rule Order(编辑规则顺序),然后更新优先级。有关详细信息,请参阅设置规则优先级。
**注意:**规则按其出现的顺序应用。 - 选择 Save Rule Order(保存规则顺序)。
使用自定义规则阻止包含特定用户代理标头的请求。
完成以下步骤:
- 打开 AWS WAF 控制台。
- 在导航窗格中,选择 AWS WAF。
- 选择 Resources & protection packs(资源和保护包)。
- 找到您的保护包,然后选择 Rules(规则)旁边的 View and edit(查看和编辑)。
- 在右侧窗格中,选择 Add rules(添加规则)。
选择 Custom rule(自定义规则),然后单击 Next(下一步)。
再次选择 Custom rule(自定义规则),然后单击 Next(下一步)。 - 将规则 Action(操作)设置为 BLOCK(阻止)。
- 输入您的 Rule name(规则名称)。
- 对于 If a request(如果请求),展开下拉列表并选择 matches the statement(与语句相匹配)。
- 对于 Inspect(检查),选择 Single header(单个标头)。
- 在 Statement(语句)下,配置以下设置:
对于 Header field name(标头字段名称),输入字段的名称。例如,User Agent(用户代理)。
对于 Match type(匹配类型),请选择 Contains string(包含字符串)。
对于 String to match(要匹配的字符串),输入要阻止的用户代理。
(可选)选择 Text transformation(文本转换)或选择 None(无)。 - 选择 Create Rule(创建规则)。
- (可选)要设置规则优先级,请在右侧窗格中选择 Edit Rule Order(编辑规则顺序),然后更新优先级。有关详细信息,请参阅设置规则优先级。
**注意:**规则按其出现的顺序应用。 - 选择 Save Rule Order(保存规则顺序)。
没有评论
