WAF 將以每 30 秒的區間來檢查 5 分鐘內的請求數量是否超過限制。
[+] Rate-based rule statement - https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-rate-based.html
而重點為此 5 分鐘為”滾動式“,差異請見以下。
以 Rate limit 300 為例,且假設 WAF 檢查在 IP 發送請求後馬上執行(30 秒區間幾乎吻合)。
若一 IP 在第 30 秒一次發送 300 個請求而因超過數量限制在 00:00:30 封鎖,計數 300。 若之後其都沒有請求產生,其將被封鎖 5 分鐘。其會在 00:05:30 的檢查內被解除封鎖,因在此時 00:30 的計數 300 已滾動出 5 分鐘窗口,目前檢查的區段為 00:00:30 < X ≤ 00:05:30,且計數為 0。
若一 IP 在每第 30 秒一次發送 31 個請求的速率發送而因超過數量限制在 00:05:00 被封鎖,計數 310。 若之後其都沒有請求產生,其將被封鎖 30 秒,其會在 00:05:30 的檢查內被解除封鎖,因在此時 00:00:30 的計數 31 已滾動出 5 分鐘窗口,目前檢查的區段為 00:00:30 < X ≤ 00:05:30 且計數為 279。