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

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

處理過大的 Web 請求組件 AWS WAF

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

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

元件檢測尺寸限制

元件檢驗尺寸限制如下:

  • BodyJSON Body — 對於 Application Load Balancer AWS AppSync, AWS WAF 可以檢查要求主體的前 8 KB。對於 CloudFront API Gateway、Amazon Cognito、應用程式執行器和驗證存取,預設情況下 AWS WAF 可以檢查前 16 KB,而且您可以在 Web ACL 組態中將限制增加到 64 KB。如需詳細資訊,請參閱 管理車身檢查尺寸限制

  • 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. 在「大小」中,輸入至少為組件類型最小大小的數字。對於標題和餅乾,請鍵入8192。在 Application Load Balancer 或 AWS AppSync Web ACL 中,針對主體,鍵8192入。對於 API Gateway CloudFront、Amazon Cognito、應用程式執行器或驗證存取網路 ACL 中的主體,如果您使用的是預設本體大小限制,請鍵入。16384否則,請輸入您為 Web ACL 定義的主體大小限制。

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

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

  5. 選擇新增規則

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