

**推出 的新主控台體驗 AWS WAF**

您現在可以使用更新後的體驗，在主控台的任何位置存取 AWS WAF 功能。如需詳細資訊，請參閱[使用 主控台](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)。

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

# 在 中使用文字轉換 AWS WAF
<a name="waf-rule-statement-transformation"></a>

本節說明如何在檢查請求之前提供 AWS WAF 要套用的轉換。

在尋找模式或設定限制條件的陳述式中，您可以在檢查請求之前提供 AWS WAF 要套用的轉換。轉換會將 Web 請求重新格式化，以避免攻擊者用來試圖略過 AWS WAF的某些異常格式。

當您搭配 JSON 內文請求元件選擇使用時， AWS WAF 會在剖析和擷取元素以從 JSON 檢查之後套用轉換。如需詳細資訊，請參閱[JSON 內文](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-json-body)。

如果您提供多個轉換，您也可以設定讓 AWS WAF 套用它們的順序。

**WCUs** – 每個文字轉換都是 10 WCUs。

 AWS WAF 主控台和 API 文件也提供下列位置中這些設定的指引：
+ 主控台上的**規則建置器** – **文字轉換**。當您使用請求元件時，此選項可供使用。
+ **API 陳述式內容** – `TextTransformations`文字轉換的選項

每個轉換清單會顯示主控台和 API 規格，後面接著描述。

Base64 decode – `BASE64_DECODE`  
AWS WAF 解碼 Base64-encoded字串。

Base64 decode extension – `BASE64_DECODE_EXT`  
AWS WAF 解碼 Base64-encoded字串，但使用忽略無效字元的寬容實作。

Command line – `CMD_LINE`  
此選項可緩解攻擊者可能注入作業系統命令列命令，並使用異常格式來掩飾部分或全部命令的情況。  
使用此選項可執行下列轉換：  
+ 刪除以下字元：`\ " ' ^`
+ 刪除以下字元前的空格：`/ (`
+ 將以下字元取代為空格：`, ;`
+ 將數個空格取代為一個空格
+ 將大寫字母 `A-Z` 轉換成小寫字母 `a-z`

Compress whitespace – `COMPRESS_WHITE_SPACE`  
AWS WAF 壓縮空格的方式是將多個空格取代為一個空格，並將下列字元取代為空格字元 (ASCII 32)：  
+ Formfeed (ASCII 12)
+ Tab (ASCII 9)
+ Newline (ASCII 10)
+ 歸位運送 (ASCII 13)
+ 垂直標籤 (ASCII 11)
+ 非中斷空間 (ASCII 160)

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;`，`&QuOt;`且視為相同。      
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/waf-rule-statement-transformation.html)

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 會以空格字元 (ASCII 0x20) `NULL` 取代輸入中的每個位元組。

SQL hex decode – `SQL_HEX_DECODE`  
AWS WAF 解碼 SQL 十六進位資料。例如，將 (`0x414243`) AWS WAF 解碼為 (`ABC`)。

URL decode – `URL_DECODE`  
AWS WAF 解碼 URL 編碼的值。

URL decode Unicode – `URL_DECODE_UNI`  
與 類似`URL_DECODE`，但支援 Microsoft 特定`%u`編碼。如果代碼是在 `FF01-FF5E` 的全形 ASCII 碼範圍內，則使用較高的位元組來偵測和調整較低的位元組。否則，只會使用較低的位元組，而較高的位元組會歸零。

UTF8 to Unicode – `UTF8_TO_UNICODE`  
AWS WAF 將所有 UTF-8 字元序列轉換為 Unicode。這有助於標準化輸入，並將非英文語言的偽陽性和偽陰性降至最低。