本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在中使用文本转换 AWS WAF
本节介绍如何为以下对象提供转换 AWS WAF 在审查请求之前申请。
在查找模式或设置约束条件的语句中,您可以为以下内容提供转换 AWS WAF 在审查请求之前申请。转换会重新格式化 Web 请求,以消除攻击者为了绕过而使用的一些不寻常的格式 AWS WAF.
当你将其与JSON正文请求组件选择一起使用时, AWS WAF 在解析并从中提取要检查的元素之后应用您的转换。JSON有关更多信息,请参阅 JSON身体。
如果您提供了多个转换,则还需要为设置顺序 AWS WAF 来应用它们。
WCUs— 每个文本转换为 10 WCUs。
这些区域有: AWS WAF 控制台和API文档还为以下位置的这些设置提供了指导:
-
控制台上的规则生成器 – 文本转换。当您使用请求组件时,可使用此选项。
-
API声明内容 —
TextTransformations
文本转换的选项
每个转换清单都显示了控制台和API规格,后面是描述。
- Base64 decode –
BASE64_DECODE
-
AWS WAF 解码一个 Base64 编码的字符串。
- Base64 decode extension –
BASE64_DECODE_EXT
-
AWS WAF 解码 Base64 编码的字符串,但使用忽略无效字符的宽容实现。
- Command line –
CMD_LINE
-
此选项可以缓解攻击者可能注入操作系统命令行命令并使用不寻常的格式来掩盖部分或全部命令的情况。
使用此选项可执行以下转换:
-
删除以下字符:
\ " ' ^
-
删除以下字符之前的空格:
/ (
-
将以下字符替换为空格:
, ;
-
将多个空格替换为一个空格
-
将大写字母
A-Z
转换为小写字母a-z
-
- Compress whitespace –
COMPRESS_WHITE_SPACE
-
AWS WAF 通过将多个空格替换为一个空格并将以下字符替换为空格字符 (ASCII32) 来压缩空白:
-
Formfeed (ASCII12)
-
选项卡 (ASCII9)
-
换行符 (ASCII10)
-
回车 (ASCII13)
-
垂直制表符 (ASCII11)
-
不间断空格 (ASCII160)
-
- CSS decode –
CSS_DECODE
-
AWS WAF 解码使用 CSS 2.x 转义规则编码的字符。
syndata.html#characters
此函数在解码过程中最多使用两个字节,因此它可以帮助发现使用通常不会编码的编码CSS编码的ASCII字符。它也可用于反规避,规避是反斜杠和非十六进制字符的组合。例如,javascript
的ja\vascript
。 - Escape sequences decode –
ESCAPE_SEQ_DECODE
-
AWS WAF 解码以下 ANSI C 转义序列:
\a
、\b
、\f
、、\n
、\r
、\t
、\v
、\\
\?
\'
、(十六进制)\"
、\xHH
\0OOO
(八进制)。无效的编码保留在输出中。 - Hex decode –
HEX_DECODE
-
AWS WAF 将一串十六进制字符解码为二进制。
- HTML entity decode –
HTML_ENTITY_DECODE
-
AWS WAF 用相应的字符替换以十六进制格式
&#xhhhh;
或十进制格式表示&#nnnn;
的字符。AWS WAF 将以下经过HTML编码的字符替换为未编码的字符。此列表使用小写HTML编码,但处理方式不区分大小写,
"
因此处理方式相同。&QuOt;
HTML-编码字符
替换为……
"
"
&
&
<
<
>
>
或 
不间断空格,十进制 160


\n
,十进制 10	
\t
,十进制 9{
或{
{
|
、|
或|
|
}
或}
}
!
!
#
#
$
$
&percent;
或%
%
'
\
(
(
)
)
*
或*
*
+
+
,
,
.
.
/
/
:
:
;
;
=
=
?
?
˜
或˜
~
−
-
[
或[
[
\
\\
]
或]
]
&hat;
^
_
或&underbar;
_
`
或`
`
- JS decode –
JS_DECODE
-
AWS WAF 解码 JavaScript 转义序列。如果
\uHHHH
代码在的全角ASCII代码范围内FF01-FF5E
,则使用较高的字节来检测和调整较低的字节。如果不是,则仅使用较低的字节,将较高的字节归零,从而可能导致信息丢失。 - Lowercase –
LOWERCASE
-
AWS WAF 将大写字母 (A-Z) 转换为小写字母 (a-z)。
- MD5 –
MD5
-
AWS WAF 根据输入中的数据计算MD5哈希值。计算的哈希是原始二进制形式。
- None –
NONE
-
AWS WAF 检查收到的 Web 请求,不进行任何文本转换。
- Normalize path –
NORMALIZE_PATH
-
AWS WAF 通过删除不在输入开头的多个斜杠、目录自引用和目录反向引用来规范化输入字符串。
- Normalize path Windows –
NORMALIZE_PATH_WIN
-
AWS WAF 将反斜杠字符转换为正斜杠,然后使用转换处理生成的字符串。
NORMALIZE_PATH
- Remove nulls –
REMOVE_NULLS
-
AWS WAF 从输入中移除所有
NULL
字节。 - Replace comments –
REPLACE_COMMENTS
-
AWS WAF 将每次出现的 C 风格注释 (/*... */) 替换为单个空格。它不会压缩连续出现的多个事件。它将未结尾的注释替换为空格 (ASCII0x20)。它不会更改独立终止的注释 (*/)。
- Replace nulls –
REPLACE_NULLS
-
AWS WAF 用空格
NULL
字符 (ASCII0x20) 替换输入中的每个字节。 - SQL hex decode –
SQL_HEX_DECODE
-
AWS WAF 解码SQL十六进制数据。例如, AWS WAF 解码 (
0x414243
) 到 (ABC
)。 - URL decode –
URL_DECODE
-
AWS WAF 解码一个URL经过编码的值。
- URL decode Unicode –
URL_DECODE_UNI
-
与
URL_DECODE
类似,但支持 Microsoft 特定的%u
编码。如果代码在的全角ASCII代码范围内FF01-FF5E
,则使用较高的字节来检测和调整较低的字节。否则,仅使用较低的字节,将较高的字节归零。 - UTF8 to Unicode –
UTF8_TO_UNICODE
-
AWS WAF 将所有 UTF -8 个字符序列转换为 Unicode。这有助于标准化输入,并最大限度地减少非英语语言的误报和假阴性。