Regole personalizzate
Dove Access Control ti dà blocchi a granularità grossa (paese, IP), le regole personalizzate ti permettono di esprimere politiche precise: "blocca qualsiasi visitatore con user-agent vuoto da ASN 14061 che colpisce /cart negli ultimi 60 secondi più di 10 volte."
Anatomia di una regola
Una regola ha quattro parti:
- Nome — per tuo riferimento
- Condizioni — una o più, combinate con AND
- Azione —
allow,challenge,block - Priorità — il numero più basso vince. Default 100.
Le regole sono valutate prima della pipeline basata su score. Se una regola matcha, la sua azione viene presa e saltiamo la valutazione.
Condizioni
| Campo | Operatori | Esempio di valore |
|---|---|---|
ip |
uguale, in CIDR | 203.0.113.0/24 |
country |
uguale, in lista | RU, [CN,KP,IR] |
asn |
uguale, in lista | 14061, [16509,14618] |
asn_org |
contiene, regex | DigitalOcean |
user_agent |
contiene, regex, vuoto | ^curl/ |
header.<nome> |
esiste, uguale, regex | header.accept-language regex ^$ |
path |
uguale, prefisso, regex | /cart, prefisso /account |
rate.requests |
gt entro finestra | > 10 entro 60s |
score |
gt, lt | > 50 |
I regex sono ancorati con ^ e $. Usa regex101.com per testare.
Esempi
Blocca tutti gli user-agent vuoti su path vicini al checkout:
| Campo | Op | Valore |
|---|---|---|
user_agent |
vuoto | — |
path |
prefisso | /checkout |
Azione: block. Priorità: 50.
Sfida chiunque da un ASN datacenter noto che colpisce /cart velocemente:
| Campo | Op | Valore |
|---|---|---|
asn |
in lista | [16509, 14618, 14061, 8075] |
path |
prefisso | /cart |
rate.requests |
gt entro | 5 entro 30s |
Azione: challenge. Priorità: 30.
Consenti il tuo servizio di monitoraggio anche se sembra sospetto:
| Campo | Op | Valore |
|---|---|---|
header.x-monitor-key |
uguale | <tuo-secret-condiviso> |
Azione: allow. Priorità: 1.
Limiti
| Piano | Regole per negozio | Storage finestra di rate |
|---|---|---|
| Scale | 25 regole | finestra scorrevole 60s |
| Max | 100 regole | finestra scorrevole 5min |
Free/Grow non hanno regole personalizzate.
Testare una regola
Salva la tua regola con azione monitor (nessun enforcement, solo log del match) per 24h. Controlla Visitor Analytics — filtrato per reason = rule:<nome-della-tua-regola>. Se i match sembrano giusti, cambia azione in block o challenge.
Disponibile su
Scale ($49/mese) e Max ($99/mese).