Regras personalizadas
Enquanto Access Control te dá bloqueios grossos (país, IP), Regras personalizadas te deixam expressar políticas precisas: "bloqueie qualquer visitante com user-agent vazio do ASN 14061 acessando /cart nos últimos 60 segundos mais de 10 vezes."
Anatomia de uma regra
Uma regra tem quatro partes:
- Nome — para sua própria referência
- Condições — uma ou mais, combinadas com AND
- Ação —
allow,challenge,block - Prioridade — número menor vence. Padrão 100.
Regras são avaliadas antes do pipeline baseado em score. Se uma regra der match, sua ação é tomada e pulamos a pontuação.
Condições
| Campo | Operadores | Exemplo de valor |
|---|---|---|
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 |
Regex é ancorada com ^ e $. Use regex101.com para testar.
Exemplos
Bloqueie todos os user-agents vazios em paths adjacentes ao checkout:
| Campo | Op | Valor |
|---|---|---|
user_agent |
empty | — |
path |
prefix | /checkout |
Ação: block. Prioridade: 50.
Desafie qualquer um de um ASN datacenter conhecido acessando /cart rápido:
| Campo | Op | Valor |
|---|---|---|
asn |
in list | [16509, 14618, 14061, 8075] |
path |
prefix | /cart |
rate.requests |
gt within | 5 within 30s |
Ação: challenge. Prioridade: 30.
Permita seu serviço de monitoramento mesmo que pareça suspeito:
| Campo | Op | Valor |
|---|---|---|
header.x-monitor-key |
equals | <seu-secret-compartilhado> |
Ação: allow. Prioridade: 1.
Limites
| Plano | Regras por loja | Storage de janela de rate |
|---|---|---|
| Scale | 25 regras | Janela deslizante de 60s |
| Max | 100 regras | Janela deslizante de 5min |
Free/Grow não têm Regras personalizadas.
Testando uma regra
Salve sua regra com ação monitor (sem aplicação, só loga um match) por 24h. Verifique Visitor Analytics — filtrado por reason = rule:<nome-da-sua-regra>. Se os matches parecem certos, mude a ação para block ou challenge.
Disponível em
Scale ($49/mês) e Max ($99/mês).