文字轉換選項 - AWS WAF、 AWS Firewall Manager、和 AWS Shield Advanced

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

文字轉換選項

在尋找模式或設定條件約束的陳述式中,您可以在檢查請求之前提供 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 字元 (這些字元通常不會被編碼)。它在反擊逃脫方面也很有用,後者是反斜線和非十六進位字元的組合。例如,javascriptja\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 編碼的字元

替換為...

"

"

&

&

<

<

&gt;

>

&nbsp;&NonBreakingSpace;

非中斷空格,小數 160

&NewLine;

\n,十進位數 10

&Tab;

\t,十進位 9

&lcub;&lbrace;

{

&verbar;&vert;&VerticalLine;

|

&rcub;&rbrace;

}

&excl;

!

&num;

#

&dollar;

$

&percent;&percnt;

%

&apos;

\

&lpar;

(

&rpar;

)

&ast;&midast;

*

&plus;

+

&comma;

,

&period;

.

&sol;

/

&colon;

:

&semi;

;

&equals;

=

&quest;

?

&tilde;&DiacriticalTilde;

~

&minus;

-

&lsqb;&lbrack;

[

&bsol;

\\

&rsqb;&rbrack;

]

&hat;

^

&lowbar;&underbar;

_

&grave;&DiacriticalGrave;

`

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 字符序列轉換為統一碼。這有助於規範化輸入,並最大限度地減少非英語語言的誤報和誤報。