本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
規則
AWS WAF規則定義如何檢查 HTTP (S) Web 要求,以及符合檢查準則時要對要求採取的動作。您只能在規則群組或 Web ACL 的前後關聯中定義規則。
您可以定義檢查條件的規則,如下所示:
-
指令碼可能為惡意。攻擊者可以利用 web 應用程式的漏洞內嵌指令碼。這稱為跨網站指令碼 (XSS)。
-
發出請求的 IP 地址或地址範圍。
-
發出請求的國家/地區或地理位置。
-
請求的指定部分的長度,例如查詢字符串。
-
SQL 程式碼可能為惡意。攻擊者會藉由內嵌惡意 SQL 程式碼於 web 請求中,嘗試從您的資料庫碼擷取資料。此稱為 SQL Injection。
-
字串會出現在請求,例如出現在
User-Agent
標頭的值或出現在查詢字串的文字字串。您也可以使用規則運算式 (regex) 指定這些字串。 -
Web ACL 中先前規則已新增至請求的標籤。
每個規則都需要一個頂層陳述式,其中可能包含任何深度的巢狀陳述式,視規則和陳述式類型而定。某些規則類型採用一組準則。例如,您可以在 IP 地址規則中指定最多 10,000 個 IP 地址或 IP 地址範圍。
除了具有 Web 請求檢查條件的陳述式 (如前面清單中的陳述式) 之外,還AWS WAF支援AND
、的邏輯陳述式OR
,NOT
以及您用來合併規則中的陳述式。
例如,根據最近已知攻擊者的請求,您可建立邏輯AND
陳述式的規則,該規則會結合下列巢狀化陳述式:
-
來自 192.0.2.44 的請求。
-
在
User-Agent
標頭中包含BadBot
值。 -
它們好像有包含類似 SQL 程式碼的查詢字串。
在這種情況下,Web 請求需要匹配所有語句才能與頂層匹配AND
。
規則不會自行存在於 AWS WAF。它們不是AWS資源,也沒有 Amazon Resource Name (ARN)。您可以在定義規則的規則群組或 Web ACL 中依名稱存取規則。您可以使用包含規則的規則群組或 Web ACL 的 JSON 格式來管理規則,並將它們複製到其他 Web ACL。或者,您可以透過 AWS WAF 主控台 Rule Builder (規則建置器) (可供 Web ACL 和規則群組使用) 來管理它們。