如何使用 AWS WAF 阻止特定文件扩展名上传?

2 分钟阅读
0

我想限制向 Web 服务器上传(HTTP POST 请求)具有特定扩展名的文件。

简短描述

分析 HTTP 请求的 POST 数据时,上传的内容可以是以下两种类型之一:

  • 表单数据
  • 二进制数据

注意: AWS WAF 会检查请求正文的前 8KB(8192 字节)。这是硬性服务限制,无法更改。

要限制上传使用特定文件扩展名(例如,.pdf、.docx 或 .exe)的文件,请完成以下步骤:

1.    创建自定义 Web 访问控制列表(Web ACL)规则以检查请求正文。

2.    在规则中创建正则表达式匹配条件。使用此正则表达式模式配置规则以限制多个文件扩展名。

3.    将规则操作设置为“阻止”。

4.    定义规则优先级,使此自定义规则的优先级高于任何可以阻止此规则的 Web ACL 规则。

5.    验证规则是否成功阻止特定的文件扩展名。

解决方法

确定 POST 数据使用的内容类型

HTTP 请求中的 POST 数据通常使用表单数据或二进制数据。

  • 表单数据包括用户在 HTTP 发送(或“发布”)到 Web 服务器的网页(或“HTML 表单”)上输入的任何数据。
  • 二进制负载是文本负载以外的任何数据。例如,二进制负载可以是 .jpeg 文件、.gzip 文件或 .xml 文件。这包括通用二进制数据,例如来自 .pdf 应用程序、.jpeg 图像或 .zip 应用程序的数据。有关所有文件扩展名类型,请参阅互联网编号分配机构(IANA)网站上的媒体类型

要确定 POST 请求的类型,请查看 HTTP POST 标头的 Content-Type 值。在以下示例中,Content-Typemultipart/form-data

Content-Type: multipart/form-data

如果标头“Content-Type”的值为“multipart/form-data”,请完成以下步骤以创建规则:

1.    打开 AWS WAF 控制台

2.    在导航窗格中的 AWS WAF 下,选择 Web ACL

3.    对于区域,选择创建 Web ACL 的 AWS 区域。
注意:如果为 Amazon CloudFront 设置了 Web ACL,请选择全球

4.    选择您的 Web ACL。然后,选择规则选项卡。

5.    选择添加规则下拉列表,然后选择添加我自己的规则和规则组

6.    对于规则类型,选择规则生成器

7.    对于名称,输入名称以标识此规则。

8.    对于类型,选择常规规则

9.    对于如果请求,选择匹配****语句。然后,完成语句的以下字段:
对于检查,选择正文
对于内容类型,选择 JSON
对于** JSON 匹配范围**,选择
对于请求正文中的 JSON 无效时 AWS WAF 应如何处理请求,根据您的用例选择相关选项。
对于要检查的内容,选择完整 JSON 内容
对于匹配类型,选择匹配正则表达式
对于正则表达式,输入要匹配的正则表达式模式。请参阅以下示例:

(?:.pdf|.doc|.docx|.ppt)

10.    (可选)对于文本转换,可以添加文本转换,也可以将这些字段保留为

11.    对于超大尺寸处理,根据您的用例选择相关选项。

12.    对于操作,选择阻止

13.    选择添加规则

14.    (可选)对于设置规则优先级,选择您的规则并移动其优先级。AWS WAF 按照规则出现的顺序处理规则。有关详细信息,请参阅 Web ACL 中规则和规则组的处理顺序

15.    选择保存

验证规则是否按预期运行。

如果标头“Content-Type”具有二进制值,例如“application/pdf”或“application/ppt”请完成以下步骤以创建规则:

1.    打开 AWS WAF 控制台

2.    在导航窗格中的 AWS WAF 下,选择 Web ACL

3.    对于区域,选择创建 Web ACL 的 AWS 区域。
注意:如果为 Amazon CloudFront 设置了 Web ACL,请选择全球

4.    选择您的 Web ACL。然后,选择规则选项卡。

5.    选择添加规则下拉列表,然后选择添加我自己的规则和规则组

6.    对于规则类型,选择规则生成器

7.    对于名称,输入名称以标识此规则。

8.    对于类型,选择常规规则

9.    对于如果请求,选择匹配****语句。然后,完成语句的以下字段:
对于检查,选择单个标头
对于标头字段名称,输入 Content-Type
对于匹配类型,选择匹配正则表达式
对于正则表达式,输入要匹配的正则表达式模式。对于 .pdf.jpeg 文件,请参阅以下示例:

(?:pdf|jpeg)   

10.    (可选)对于文本转换,可以添加文本转换,也可以将这些字段保留为

11.    对于操作,选择阻止

12.    选择添加规则

13.    (可选)对于设置规则优先级,选择您的规则并移动其优先级。AWS WAF 按照规则出现的顺序处理规则。有关详细信息,请参阅 Web ACL 中规则和规则组的处理顺序

14.    选择保存

验证规则是否按预期运行。

**注意:**要将规则限制为特定的上传 URI 路径,请在检查路径的 Web ACL 规则中使用 AND 语句

AWS 官方
AWS 官方已更新 1 年前
没有评论