文本转换 - Amazon WAF、Amazon Firewall Manager 和 Amazon Shield Advanced
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

文本转换

在查找模式或设置约束的语句中,您可以提供 Amazon WAF 要在检查请求之前应用的转换。转换会重新设置 Web 请求的格式,消除了一些不寻常的格式,可防范攻击者使用它们以试图绕过 Amazon WAF。

当您将其用于 JSON 正文请求组件选择时,Amazon WAF在解析并从 JSON 中提取要检查的元素后应用转换。想要了解更多信息,请参阅前一部分,JSON 正文.

如果提供多个转换,还应当设置 Amazon WAF 应用这些转换的顺序。

WCU— 每个文本转换为 10 个 WCU。

Amazon WAF 控制台和 API 文档还在以下位置提供有关这些设置的指南:

  • 规则生成器在控制台上 —文本转换. 当您使用请求组件时,可使用此选项。

  • API 语句内容TextTransformations

文本转换的选项

Base64 解码

Amazon WAF对 Base64 编码的字符串进行解码。

Base64 解码文本

Amazon WAF解码 Base64 编码的字符串,但使用宽容的实现,忽略无效字符。

Command line

此选项可减少攻击者可能注入操作系统命令行命令并使用不寻常的格式伪装部分或全部命令的情况。

使用此选项可执行以下转换:

  • 删除以下字符:\ " ' ^

  • 删除以下字符之前的空格:/ (

  • 将以下字符替换为空格:, ;

  • 将多个空格替换为一个空格

  • 将大写字母 A-Z 转换为小写字母 a-z

压缩空格

Amazon WAF 用一个空格替换多个空格,并将以下字符替换为空格字符(十进制 32):

  • \f,换页符,十进制 12

  • \t,制表符,十进制 9

  • \n,换行符,十进制 10

  • \r,回车符,十进制 13

  • \v,垂直制表符,十进制 11

  • 不间断空格,十进制 160

CSS 解码

Amazon WAF解码使用 CSS 2.x 转义规则编码的字符syndata.html#characters. 此函数在解码过程中最多使用两个字节,因此它可以帮助发现使用 CSS 编码而通常不会被编码的 ASCII 字符。它也可用于反规避,规避是反斜杠和非十六进制字符的组合。例如,ja\ vascript 用于 javascript。

转义序列解码

Amazon WAF解码以下 ANSI C 转义序列:\a, \b, \f, \n, \r, \t, \v, \\, \?, \', \", \xHH (hexadecimal), \0OOO (octal). 无效的编码保留在输出中。

十六进制解码

Amazon WAF将一串十六进制字符解码为二进制字符。

HTML 实体解码

Amazon WAF 将 HTML 编码的字符替换为未编码的字符:

  • " 替换为 "

  •   替换为不间断空格(十进制 160)

  • &lt; 替换为 <

  • &gt; 替换为 >

  • 将以十六进制格式表示的字符 &#xhhhh; 替换为对应字符

  • 将以十进制格式表示的字符 &#nnnn; 替换为对应字符

JS 解码

Amazon WAFDE JavaScript 转义序列。如果 a\uHHHH代码在全宽 ASCII 代码范围内FF01-FF5E,则使用较高的字节来检测和调整低字节。如果不是,则仅使用较低的字节,将较高的字节归零,从而可能导致信息丢失。

小写

Amazon WAF 将大写字母 (A-Z) 转换为小写字母 (a-z)。

MD5

Amazon WAF根据输入中的数据计算 MD5 哈希值。计算的哈希是原始二进制形式。

None(无)

Amazon WAF检查收到的 Web 请求,不进行任何文本转换。

标准化路径

Amazon WAF从输入字符串中移除不在输入开头的多个斜杠、目录自引用和目录向后引用。

规范化路径

Amazon WAF像这样处理NORMALIZE_PATH,但首先将反斜杠字符转换为正斜杠。

移除空值

Amazon WAF删除时间:全部删除NULL来自输入的字节。

替换注释

Amazon WAF将每次出现的 C 样式注释 (/*... */) 替换为单个空格。它不会压缩连续出现的多个事件。它将未终止的注释替换为空格 (ASCII 0x20)。它不会改变评论的独立终止 (*/)。

替换 Null

Amazon WAF取代NULL输入中包含空格字符 (ASCII 0x20) 的字节。

SQL 十六进制解码

Amazon WAF解码 SQL 十六进制数据。例如,(0x414243) 被解码为 (ABC)。

URL decode

Amazon WAF解码 URL 编码的值。

URL 解码单元

LIURL_DECODE,但支持微软专用%u编码。如果代码在 FF01-FF5E 的全角 ASCII 码范围内,则较高的字节用于检测和调整较低的字节。否则,仅使用较低的字节,将较高的字节归零。

UTF8 到 Unicode

Amazon WAF将所有 UTF-8 字符序列转换为 Unicode。这有助于输入标准化,并最大限度地减少非英语语言的误报和假阴性。