Skip to content
SOptim SOptim / Docs

自定义规则

虽然 Access Control 为您提供粗粒度屏蔽(国家/地区、IP),但自定义规则让您表达精确的策略:"屏蔽来自 ASN 14061 的、user-agent 为空的访客,他们在过去 60 秒内访问 /cart 超过 10 次。"

规则的剖析

规则有四个部分:

  1. 名称 — 供您自己参考
  2. 条件 — 一个或多个,使用 AND 组合
  3. 操作allowchallengeblock
  4. 优先级 — 数字越低胜出。默认 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:<您的规则名称> 过滤。如果匹配看起来正确,将操作切换到 blockchallenge

可用于

Scale ($49/月) 和 Max ($99/月)。

Last updated: 2026-05-19
Send feedback