本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用字串比對條件
注意
這是AWS WAF 經典文檔。只有在您在 2019 年 11 月 AWS WAF 之前建立了規則和 Web ACL 等 AWS WAF 資源,但尚未將資源移轉至最新版本時,才應使用此版本。若要移轉資源,請參閱 將您的 AWS WAF 傳統資源遷移到 AWS WAF。
如需的最新版本 AWS WAF,請參閱AWS WAF。
如果您想根據請求裡出現的字串,允許或封鎖 web 請求,請建立一個或多個字串比對條件。字串比對條件會識別您要搜尋的字串,以及您希望 C AWS WAF lassic 檢查字串的 Web 要求部分,例如指定的標頭或查詢字串。稍後,當您建立 Web ACL,您需要指定是否要允許或封鎖含有這些字串的請求。
建立字串比對條件
當您建立字串比對條件時,您可以指定篩選器,以識別您要搜尋的字串,以及您希望 C AWS WAF lassic 檢查該字串的 Web 要求部分,例如 URI 或查詢字串。您可以將多個篩選條件增至字串比對條件,或您可以為每個篩選條件建立獨立的條件。以下是每個配置如何影響 AWS WAF 傳統行為:
每個字串符合條件一個篩選器 — 當您將個別字串符合條件新增至規則,並將規則新增至 Web ACL 時,Web 要求必須符合 C AWS WAF lassic 的所有條件,才能根據條件允許或封鎖要求。
例如,假設您建立兩個條件。一個符合 web 請求,還有
User-Agent
標頭的BadBot
值。另一個符合 web 請求,含有查詢字串的BadParameter
值。當您將這兩個條件新增至相同的規則,並將規則新增至 Web ACL 時, AWS WAF 傳統只會在這兩個條件包含兩個值時才允許或封鎖要求。每個字串符合條件有多個篩選器 — 當您將包含多個篩選的字串比對條件新增至規則,並將規則新增至 Web ACL 時,Web 請求只需要符合 C AWS WAF lassic 字串比對條件中的其中一個篩選器,即可根據一個條件允許或封鎖要求。
假設您建立一個條件而不是兩個條件,而一個條件包含與前面範例中相同的兩個篩選器。 AWS WAF 傳統允許或阻止請求,如果它們包含
BadBot
在User-Agent
標題或查詢字符串BadParameter
中。
注意
當您將字串比對條件新增至規則時,您也可以將「 AWS WAF 典型」設定為允許或封鎖與條件中值不符的 Web 要求。
建立字串比對條件
請登入 AWS Management Console 並開啟 AWS WAF 主控台,網址為 https://console.aws.amazon.com/wafv2/
。 如果您在導覽窗格中看到 [切換到 AWS WAF 傳統],請選取它。
在導覽窗格中選擇字串和 regex 比對。
選擇 Create condition (建立條件)。
指定適用的篩選條件設定。如需詳細資訊,請參閱 在您建立或編輯字串比對條件時所指定的值。
選擇新增篩選條件。
如果您希望新增另一個篩選,重複步驟四和五。
完成篩選條件,請選擇建立。
在您建立或編輯字串比對條件時所指定的值
在建立或更新字串比對條件時,請指定以下的值:
- 名稱
輸入字串比對條件的名稱。名稱僅能含有英數字元 (A-Z、a-z、0-9) 或以下特殊字元:_-!"#`+*},./。條件的名稱在建立後無法變更。
- Type
選擇 String match (字串比對)。
- 要篩選的請求部分是
選擇您希望 C AWS WAF lassic 檢查您在值中指定要匹配的字符串的每個 Web 請求的部分:
- 標頭
指定的請求標頭,例如,
User-Agent
或Referer
標頭。如果您選擇標頭,請在標頭欄位裡指定標頭的名稱。- HTTP 方法
HTTP 方法,指出要求來源執行的作業類型。CloudFront 支援下列方法:
DELETE
GET
、HEAD
、OPTIONS
、PATCH
、POST
、和PUT
。- 查詢字串
出現在
?
字元後的 URL 部分 (如果有)。- URI
請求的 URI 路徑,用於識別資源,例如
/images/daily-ad.jpg
。這不包括 URI 的查詢字串或片段元件。如需詳細資訊,請參閱統一資源識別元 (URI):一般語法。 除非指定了轉換,否則 URI 不會被標準化,並且會像從客戶端 AWS 接收它作為請求的一部分一樣進行檢查。Transformation (轉換) 將如指定重新格式化 URI。
- Body
部分的請求內容含有您想傳送至您的 web 伺服器做為 HTTP 請求內文的額外資料,您要傳送到您的 Web 伺服器的 HTTP 請求的內文,例如資料表單。
注意
如果您選擇 [內文] 做為要篩選之要求的部分值, AWS WAF 典型只會檢查前 8192 個位元組 (8 KB)。若要允許或封鎖主體超過 8192 個位元組的要求,您可以建立大小限制條件。(AWS WAF 經典從請求頭獲取主體的長度。) 如需詳細資訊,請參閱 使用容量限制條件。
- 單一查詢參數 (僅數值)
任何您已定義做為部分查詢字串的參數。例如,如果網址是「www.xyz.com」UserName = ABC& SalesRegion = 西雅圖」,您可以將過濾器添加到或參數中。UserNameSalesRegion
如果重複的參數顯示在查詢字串上,則數值評估則為「OR」。也就是說,將會觸發符合的值。例如,在網址「www.xyz.com? SalesRegion =boston& = SalesRegion 西雅圖」中,「要匹配的值」中的「波士頓」或「西雅圖」都會觸發匹配。
如果您選擇單一查詢參數 (僅數值),您也可以指定查詢參數名稱。這是您要檢查的查詢字串中的參數,例如UserName或SalesRegion。查詢參數名稱的長度上限為 30 個字元。查詢參數名稱 不區分大小寫。例如,您指定UserName為查詢參數名稱,這將匹配的所有變體 UserName,例如用戶名和用戶名。
- 所有的查詢參數 (僅數值)
類似於單一查詢參數 (僅限值),而不是檢查單一參數的值,C AWS WAF lassic 會檢查查詢字串中所有參數的值是否符合「值」。例如,如果網址是「www.xyz.com? UserName =abc& = 西雅圖/ SalesRegion 西雅圖」,而您選擇「所有查詢參數」(僅限值),如果將UserName或的值指定為要比對的值,則 AWS WAF 傳統將觸發相符項SalesRegion目。
- 標頭 (只有當「部分請求的篩選條件」為「標頭」時)
如果您從要篩選清單的要求部分中選擇 [標頭],請從通用標頭清單中選擇標頭,或輸入您希望 C AWS WAF lassic 檢查的標頭名稱。
- 符合類型
在您希望 C AWS WAF lassic 檢查的請求部分中,選擇要匹配的值中的字符串必須顯示以匹配此過濾器的位置:
- 包含
該字串出現在指定請求部分中的任何位置。
- 包含的字
指定的請求部分必須包含符合值,且符合值必須只能含有字母數字字元或底線 (A-Z, a-z, 0-9, or _)。此外,符合值必須為字,表示以下其中一項:
符合值完全符合指定的值,例如 web 請求部分的標頭的值。
符合值為指定的 Web 請求部分的開始,後面接的字元為一個字母數字字元或底線 (_),例如
BadBot;
。符合值為指定的 Web 請求部分的結尾,前面接的字元為一個字母數字字元或底線 (_),例如
;BadBot
。符合值為指定的 Web 請求部分的中間,前後面接的字元為字母數字字元或底線 (_),例如
-BadBot;
。
- 完全符合
字串和指定的請求部分,值為相同的。
- 開頭為
該字串出現在指定請求部分中的起始位置。
- 結尾為
該字串出現在指定請求部分中的結束位置。
- 轉換
轉換會在 AWS WAF 傳統檢查要求之前重新格式化 Web 要求。這消除了攻擊者在 Web 請求中使用的一些不尋常的格式,以便繞過 C AWS WAF lassic。
您只能指定一種文字轉換類型。
轉換可執行下列操作:
- 無
AWS WAF Classic 在檢查 Val ue 中是否有要匹配的字符串之前,不會對 Web 請求執行任何文本轉換。
- 轉換成小寫
AWS WAF 經典將大寫字母(A-Z)轉換為小寫(a-z)。
- HTML 解碼
AWS WAF 經典用未編碼字符替換 HTML 編碼的字符:
將
"
換成&
以非中斷空格取代
將
<
換成<
將
>
換成>
將表示為十六進位格式的字元
&#xhhhh;
以對應字元取代將表示為十進位格式的字元
&#nnnn;
以對應字元取代
- 標準化空格
AWS WAF 經典用空格字符(十進制 32)替換以下字符:
\f、跳頁、小數 12
\t、標籤、小數 9
\n、換行,小數 10
\r、換行、小數 13
\v、垂直標籤,小數 11
非中斷空格,小數 160
此外,此選項將數個空格取代為一個空格。
- 簡化命令列
若您將擔心攻擊者插入作業命令列命令,或使用不尋常的格式偽裝某些或所有命令,請使用此選項執行下列轉換:
刪除以下字元:\ " ' ^
刪除以下字元前的空格:/ (
將以下字元取代為空格:, ;
將數個空格取代為一個空格
將所有大寫字母 (A-Z) 轉換成小寫 (a-z)
- URL 解碼
解碼 URL 編碼請求。
- base64 編碼值
如果符合值的值是 base64 編碼,請選取此核取方塊。使用 base64 編碼指定攻擊者在其請求中使用的無法列印字元,例如標籤和換行。
- 符合值
指定您希望 AWS WAF 傳統版在 Web 請求中搜尋的值。長度上限為 50 個位元組。如果您使用 base64 編碼此數值,50 個位元組的長度上限適用於之前編碼的值。
新增和刪除字串比對條件的篩選條件
您可以新增和刪除字串比對條件的篩選條件。若要變更篩選條件、新增新的篩選條件、和刪除舊的篩選條件。
新增和刪除字串比對條件的篩選條件
請登入 AWS Management Console 並開啟 AWS WAF 主控台,網址為 https://console.aws.amazon.com/wafv2/
。 如果您在導覽窗格中看到 [切換到 AWS WAF 傳統],請選取它。
在導覽窗格中選擇字串和 regex 比對。
選擇您想要在條件裡新增或刪除的篩選條件。
若要新增篩選條件,請執行以下步驟:
選擇新增篩選條件。
指定適用的篩選條件設定。如需詳細資訊,請參閱 在您建立或編輯字串比對條件時所指定的值。
選擇新增。
若要刪除篩選條件,請執行以下步驟:
選取您要刪除的篩選條件。
選擇刪除篩選條件。
刪除字串比對條件
如果您想要刪除字串條件,您需要先刪除該條件內的所有篩選條件,以及從所有使用它的規則中移除,請參閱下列程序。
刪除字串比對條件
請登入 AWS Management Console 並開啟 AWS WAF 主控台,網址為 https://console.aws.amazon.com/wafv2/
。 如果您在導覽窗格中看到 [切換到 AWS WAF 傳統],請選取它。
從使用該字串比對條件的規則中移除該條件:
在導覽窗格中,選擇規則。
選擇要刪除使用該字串比對條件的規則名稱。
在右窗格中選擇編輯規則。
在您要刪除的條件旁,選擇 X。
選擇更新。
對所有剩下要刪除使用該字串比對條件的規則,重複步驟。
從您想刪除的條件移除篩選條件:
在導覽窗格中選擇字串和 regex 比對。
選擇您要刪除的字串比對條件名稱。
在右窗格中,選擇篩選條件旁的核取方塊,以選取所有篩選條件。
選擇刪除篩選條件。
在導覽窗格中選擇字串和 regex 比對。
在字串比對條件窗格中,選擇您要刪除的字串比對條件。
選擇刪除以刪除選取的條件。