處理過大的 Web 請求組件 - AWS WAF、AWS Firewall Manager 與 AWS Shield Advanced

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

處理過大的 Web 請求組件

AWS WAF不支持檢查 Web 請求組件正文,標題或 cookie 的非常大的內容。基礎主機服務對轉寄至AWS WAF檢查的項目有計數和大小限制。例如,主機服務不會傳送超過 200 個標頭AWS WAF,因此對於具有 205 個標頭的 Web 要求,則AWS WAF無法檢查最後 5 個標頭。

當AWS WAF允許 Web 要求繼續存取受保護的資源時,就會傳送整個 Web 要求,包括超出可檢查計數和大小限制AWS WAF的任何內容。

元件檢測尺寸限制

元件檢驗尺寸限制如下:

  • BodyJSON Body — 對於區域網路 ACL,AWS WAF可以檢查要求主體的前 8 KB。對於 CloudFront 網頁 ACL,預設情況下AWS WAF可以檢查前 16 KB,而且您可以將網頁 ACL 組態中的此限制增加到 32 KB、48 KB 或 64 KB。如需變更限制的資訊,請參閱 CloudFront Web ACL 的車身檢查尺寸限制

  • Headers— 最多AWS WAF可以檢查要求標頭的前 8 KB (8,192 位元組),以及最多前 200 個標頭。內容可供檢查,最多可AWS WAF達到第一個限制。

  • Cookies— 最多AWS WAF可以檢查請求餅乾的前 8 KB(8,192 字節)和最多前 200 個餅乾。內容可供檢查,最多可AWS WAF達到第一個限制。

規則陳述式的超大處理選項

當您撰寫檢查其中一個要求元件類型的規則陳述式時,您可以指定如何處理過大的元件。當規則檢查的要求元件超過大小限制時,超大處理會告訴AWS WAF如何處理 Web 要求。

處理超大元件的選項如下:

  • Continue— 根據規則檢查條件,正常檢查請求元件。 AWS WAF將檢查大小限制內的請求組件內容。

  • Match— 將 Web 請求視為比對規則陳述式。 AWS WAF將規則動作套用至請求,而不會根據規則檢查條件評估它。

  • No match— 將 Web 請求視為與規則陳述式不相符,無需根據規則的檢查條件評估它。 AWS WAF使用 Web ACL 中的其餘規則繼續檢查 Web 請求,就像對任何不相符的規則一樣。

在主AWS WAF控台中,您必須選擇其中一個處理選項。在主控台外部,預設選項為Continue。

如果您在將其動作設定為的規則中使用Match選項Block,則規則會封鎖檢查元件過大的要求。對於任何其他配置,請求的最終處理方式取決於各種因素,例如 Web ACL 中其他規則的配置以及 Web ACL 的預設動作設定。

未擁有的規則群組中的超大處理

元件大小和計數限制適用於您在 Web ACL 中使用的所有規則。這包括您在受管規則群組和由其他帳戶與您共用的規則群組中使用但未管理的任何規則。

當您使用不管理的規則群組時,規則群組可能會有一個規則來檢查有限的要求元件,但不會按照您需要處理的方式來處理過大的內容。如需受管規則如何AWS管理過大元件的相關資訊,請參閱AWS受管規則規則群組清單。如需其他規則群組的相關資訊,請洽詢您的規則群組提供者。

在 Web ACL 中管理過大元件的準則

您在 Web ACL 中處理過大元件的方式可能取決於許多因素,例如要求元件內容的預期大小、Web ACL 的預設要求處理,以及 Web ACL 中其他規則如何比對和處理要求。

管理過大型 Web 請求元件的一般準則如下:

  • 如果您需要允許某些組件內容過大的請求,請盡可能添加規則以明確允許這些請求。排定這些規則的優先順序,使其在 Web ACL 中檢查相同元件類型的任何其他規則之前執行。使用這種方法,您將無法使用檢AWS WAF查允許傳遞給受保護資源的超大組件的全部內容。

  • 對於所有其他請求,您可以阻止超過限制的請求來阻止任何其他字節傳遞:

    • 您的規則和規則群組 — 在使用大小限制檢查元件的規則中,設定超大處理,以便封鎖超過限制的要求。例如,如果您的規則封鎖具有特定標頭內容的要求,請將超大處理設定為符合標頭內容過大的要求。或者,如果您的 Web ACL 預設會封鎖要求,且您的規則允許特定的標頭內容,請將規則的超大處理設定為不符合任何具有超大標頭內容的要求。

    • 您不管理的規則群組 — 為了防止您不管理的規則群組允許過大的要求元件,您可以新增個別規則來檢查要求元件類型,並封鎖超過限制的要求。在 Web ACL 中排定規則的優先順序,使其在規則群組之前執行。例如,在 Web ACL 中執行任何主體檢查規則之前,您可以封鎖具有超大主體內容的請求。下列程序說明如何新增這類規則。

新增阻擋過大內容的規則
  1. 當您建立或編輯 Web ACL 時,請在規則設定中選擇 [新增規則]、[新增我自己的規則和規則群組]、[規則產生器],然後選擇 [規則視覺化編輯器]。如需建立或編輯 Web ACL 的指導,請參閱使用 Web ACL

  2. 輸入規則的名稱,並將「類型」設定保留為「一般」規則

  3. 從預設值變更下列比對設定:

    1. 在「陳述式」中,針對「檢查」開啟下拉式清單,然後選擇您需要的 Web 要求元件 (「文」、「標頭」或「Cookie」)。

    2. 對於「相符類型」,請選擇「大小大於」。

    3. 在「大小」中,輸入至少為組件類型最小大小的數字。如果是區域網頁 ACL 中的內文,以及標頭和 Cookie,請輸入8192。對於 Web ACL 中保護 CloudFront 分佈的主體,如果您使用的是預設主體大小限制,請鍵入16384。否則,請輸入您為 CloudFront Web ACL 定義的主體大小限制。

    4. 對於超大尺寸處理,請選取「符合」。

  4. 選取「動作」做為「封鎖」。

  5. 選擇 Add rule (新增規則)

  6. 新增規則後,在 [設定規則優先順序] 頁面上,將其移至 Web ACL 中檢查相同元件類型的任何規則或規則群組上方。這使得它具有較低的數字優先級設置,這導AWS WAF致首先對其進行評估。如需詳細資訊,請參閱Web ACL 中規則和規則群組的處理順序