本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
文字轉換選項
在尋找模式或設定條件約束的陳述式中,您可以在檢查請求之前提供 AWS WAF 要套用的轉換。轉換會將 Web 請求重新格式化,以避免攻擊者用來試圖略過 AWS WAF的某些異常格式。
當您將此選項與 JSON 主體要求元件選取搭配使用時,會在剖析並擷取要從 JSON 檢查的元素之後 AWS WAF 套用您的轉換。如需詳細資訊,請參閱 正文。
如果您提供多個轉換,您也可以設定讓 AWS WAF 套用它們的順序。
WCU — 每個文字轉換都是 10 個 WCU。
主 AWS WAF 控台和 API 文件也會在下列位置提供這些設定的指引:
-
主控台上的規則產生器 — 文字轉換。當您使用請求元件時,此選項可供使用。
-
API 陳述式內容 —
TextTransformations
文字轉換的選項
每個轉換清單都會顯示主控台和 API 規格,後面接著說明。
- Base64 decode –
BASE64_DECODE
-
AWS WAF 解碼一個以 BAS64 編碼的字符串。
- Base64 decode extension –
BASE64_DECODE_EXT
-
AWS WAF 解碼一個 Base64 編碼的字符串,但使用一個寬容的實現忽略無效的字符。
- Command line –
CMD_LINE
-
此選項可緩解攻擊者可能注入作業系統命令列命令,並使用不尋常的格式來掩飾部分或全部命令的情況。
使用此選項可執行下列轉換:
-
刪除以下字元:
\ " ' ^
-
刪除以下字元前的空格:
/ (
-
將以下字元取代為空格:
, ;
-
將數個空格取代為一個空格
-
將大寫字母
A-Z
轉換成小寫字母a-z
-
- Compress whitespace –
COMPRESS_WHITE_SPACE
-
AWS WAF 以一個空格取代多個空格,並以空格字元 (ASCII 32) 取代下列字元,以壓縮空格:
-
進紙 (12)
-
標籤頁 (ASCII 碼 9)
-
新行 (十字军)
-
回車符
-
「垂直」頁籤 (11)
-
非中斷空格
-
- 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 風格註釋(/*... */)。它不會壓縮多個連續出現的次數。它用空格(ASCII 0x20)替換未終止的註釋。它不會更改評論的獨立終止(*/)。
- Replace nulls –
REPLACE_NULLS
-
AWS WAF 以空格字
NULL
元 (ASCII 0x20) 取代輸入中的每個位元組。 - 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
,但支持特定於微軟%u
的編碼。如果代碼是在FF01-FF5E
的全形 ASCII 碼範圍內,則使用較高的位元組來偵測和調整較低的位元組。否則,只會使用較低的位元組,而較高的位元組會歸零。 - UTF8 to Unicode –
UTF8_TO_UNICODE
-
AWS WAF 將所有 UTF-8 字符序列轉換為統一碼。這有助於規範化輸入,並最大限度地減少非英語語言的誤報和誤報。