本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
處理過大的 Web 請求組件 AWS WAF
本節介紹如何管理檢查 Web 請求主體,標題和 Cookie 的大小限制 AWS WAF.
AWS WAF 不支持檢查 Web 請求組件正文,標題或 cookie 的非常大的內容。基礎主機服務對轉發到的內容有計數和大小限制 AWS WAF 用於檢查。例如,主機服務不會傳送超過 200 個標頭至 AWS WAF,所以對於帶有 205 頭文件的網絡請求, AWS WAF 無法檢查最後 5 個標題。
當 AWS WAF 允許 Web 請求繼續訪問受保護的資源,並發送整個 Web 請求,包括超出計數和大小限制的任何內容 AWS WAF 能夠檢查。
元件檢測尺寸限制
元件檢驗尺寸限制如下:
-
Body
和JSON Body
— 適用於應用程式負載平衡器和 AWS AppSync, AWS WAF 可以檢查請求主體的前 8 KB。默認情況下 CloudFront,對於API網關,Amazon Cognito,應用程序運行器和驗證訪問, AWS WAF 可以檢查前 16 KB,並且您可以在 Web ACL 配置中將限制增加到 64 KB。如需詳細資訊,請參閱管理的車身檢查尺寸限制 AWS WAF。 -
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 中的其餘規則繼續檢查 Web 請求,ACL就像對任何不匹配的規則一樣。
在 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 中執行任何主體檢查規則之前封鎖具有超大主體內容的要求。下列程序說明如何新增此類型的規則。
-
阻止過大的 Web 請求組件
您可以在 Web 中添加一個規則ACL,該規則阻止具有超大組件的請求。
新增封鎖過大內容的規則
-
當您建立或編輯網頁時ACL,請在規則設定中選擇 [新增規則]、[新增我自己的規則和規則群組]、[規則產生器],然後選擇 [規則視覺化編輯器]。如需建立或編輯網頁的指引ACL,請參閱檢視網路流量量度 AWS WAF。
-
輸入規則的名稱,並將「類型」設定保留為「一般」規則。
-
從預設值變更下列比對設定:
-
在陳述式上,針對「檢查」,開啟下拉式清單,然後選擇您需要的 Web 要求元件 (「內文」、「標頭」或「Cookie」)。
-
對於「相符類型」,請選擇「大小大於」。
-
在「大小」中,輸入至少為組件類型最小大小的數字。對於標題和餅乾,請鍵入
8192
。在 Application Load Balancer 或 AWS AppSync 網頁ACLs,對於本體,鍵入8192
。對於「API閘道」 CloudFront、「Amazon Cognito」、「應用程式執行器」或「驗證存取權」網頁中的主體ACLs,如果您使用的是預設的主體大小限制,請鍵入16384
。否則,請輸入您為 Web 定義的主體大小限制ACL。 -
對於超大尺寸處理,請選取「符合」。
-
-
選取「動作」做為「封鎖」。
-
選擇新增規則。
-
新增規則後,在 [設定規則優先順序] 頁面上,將其移至 Web ACL 中檢查相同元件類型的任何規則或規則群組上方。這會讓新規則具有較低的數值優先順序設定,這會造成 AWS WAF 首先評估它。如需詳細資訊,請參閱在 Web 中設定規則優先順序 ACL。