自定義規則
雖然 Access Control 為您提供粗粒度屏蔽(國家/地區、IP),但自定義規則讓您表達精確的策略:"屏蔽來自 ASN 14061 的、user-agent 為空的訪客,他們在過去 60 秒內訪問 /cart 超過 10 次。"
規則的剖析
規則有四個部分:
- 名稱 — 供您自己參考
- 條件 — 一個或多個,使用 AND 組合
- 操作 —
allow、challenge、block - 優先級 — 數字越低勝出。默認 100。
規則在基於評分的管道 之前 進行評估。如果任何規則匹配,則採取其操作,我們跳過評分。
條件
| 字段 | 操作符 | 示例值 |
|---|---|---|
ip |
equals, in CIDR | 203.0.113.0/24 |
country |
equals, in list | RU, [CN,KP,IR] |
asn |
equals, in list | 14061, [16509,14618] |
asn_org |
contains, regex | DigitalOcean |
user_agent |
contains, regex, empty | ^curl/ |
header.<name> |
exists, equals, regex | header.accept-language regex ^$ |
path |
equals, prefix, regex | /cart, prefix /account |
rate.requests |
gt within window | > 10 within 60s |
score |
gt, lt | > 50 |
正則表達式用 ^ 和 $ 錨定。使用 regex101.com 進行測試。
示例
屏蔽結賬鄰近路徑上的所有空 user-agent:
| 字段 | Op | 值 |
|---|---|---|
user_agent |
empty | — |
path |
prefix | /checkout |
操作:block。優先級:50。
質詢任何從已知數據中心 ASN 快速訪問 /cart 的人:
| 字段 | Op | 值 |
|---|---|---|
asn |
in list | [16509, 14618, 14061, 8075] |
path |
prefix | /cart |
rate.requests |
gt within | 5 within 30s |
操作:challenge。優先級:30。
即使您的監控服務看起來可疑也允許它:
| 字段 | Op | 值 |
|---|---|---|
header.x-monitor-key |
equals | <您的共享密鑰> |
操作:allow。優先級:1。
限制
| 套餐 | 每店規則 | 速率窗口存儲 |
|---|---|---|
| Scale | 25 條規則 | 60s 滑動窗口 |
| Max | 100 條規則 | 5min 滑動窗口 |
Free/Grow 沒有自定義規則。
測試規則
將規則保存為操作 monitor(無強制執行,僅記錄匹配)24 小時。檢查 訪客分析 — 按 reason = rule:<您的規則名稱> 過濾。如果匹配看起來正確,將操作切換到 block 或 challenge。
可用於
Scale ($49/月) 和 Max ($99/月)。