本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在中使用文字轉換 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 解碼一個以 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 以一個空格取代多個空格,並以空格字元 (ASCII32) 取代下列字元,以壓縮空格:
-
表格饋送 (ASCII12)
-
標籤頁 (ASCII9)
-
換行符 (ASCII10)
-
回車率 (ASCII13)
-
垂直索引標籤 (ASCII11)
-
不間斷空格 (ASCII160)
-
- CSS decode –
CSS_DECODE
-
AWS WAF 解碼使用 CSS 2.x 轉義規則編碼的字符。
syndata.html#characters
該函數在解碼過程中最多使用兩個ASCII字節,因此它可以幫助發現使用通常不會CSS編碼的編碼編碼的字符。它在反擊逃脫方面也很有用,後者是反斜線和非十六進位字元的組合。例如,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
,但支持特定於微軟%u
的編碼。如果程式碼位於的全寬度ASCII程式碼範圍內FF01-FF5E
,則會使用較高的位元組來偵測和調整較低的位元組。否則,只會使用較低的位元組,而較高的位元組會歸零。 - UTF8 to Unicode –
UTF8_TO_UNICODE
-
AWS WAF 將所有 UTF -8 個字符序列轉換為 Unicode。這有助於規範化輸入,並最大限度地減少非英語語言的誤報和誤報。