Reglas personalizadas
Donde Access Control te da bloqueos gruesos (país, IP), las Reglas Personalizadas te dejan expresar políticas precisas: «bloquear cualquier visitante con user-agent vacío del ASN 14061 golpeando /cart más de 10 veces en los últimos 60 segundos.»
Anatomía de una regla
Una regla tiene cuatro partes:
- Nombre — para tu propia referencia
- Condiciones — una o más, combinadas con AND
- Acción —
allow,challenge,block - Prioridad — número más bajo gana. Por defecto 100.
Las reglas se evalúan antes del pipeline basado en puntuación. Si alguna regla coincide, se ejecuta su acción y saltamos la puntuación.
Condiciones
| Campo | Operadores | Valor ejemplo |
|---|---|---|
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 está anclado con ^ y $. Usa regex101.com para probar.
Ejemplos
Bloquear todos los user-agents vacíos en paths cercanos al checkout:
| Campo | Op | Valor |
|---|---|---|
user_agent |
empty | — |
path |
prefix | /checkout |
Acción: block. Prioridad: 50.
Challenge a cualquiera de un ASN datacenter conocido golpeando /cart rápido:
| Campo | Op | Valor |
|---|---|---|
asn |
in list | [16509, 14618, 14061, 8075] |
path |
prefix | /cart |
rate.requests |
gt within | 5 within 30s |
Acción: challenge. Prioridad: 30.
Permitir tu servicio de monitorización aunque parezca sospechoso:
| Campo | Op | Valor |
|---|---|---|
header.x-monitor-key |
equals | <your-shared-secret> |
Acción: allow. Prioridad: 1.
Límites
| Plan | Reglas por tienda | Almacenamiento ventana rate |
|---|---|---|
| Scale | 25 reglas | Ventana deslizante 60s |
| Max | 100 reglas | Ventana deslizante 5min |
Free/Grow no tienen Reglas Personalizadas.
Probar una regla
Guarda tu regla con acción monitor (sin aplicación, solo registra una coincidencia) durante 24h. Comprueba Visitor Analytics — filtrado por reason = rule:<your-rule-name>. Si las coincidencias parecen correctas, cambia la acción a block o challenge.
Disponible en
Scale ($49/mes) y Max ($99/mes).