Límites de frecuencia
Presets de límites de frecuencia por formulario con los números exactos, cómo se recargan y cómo es un 429.
Los límites de frecuencia impiden que un visitante, o un script, inunde un formulario. Cada formulario tiene un preset, y cada límite se cuenta con exactitud antes de leer el cuerpo. Un envío rechazado no consume margen.
Presets
| Preset | Por visitante y formulario | Ideal para |
|---|---|---|
| Standard (por defecto) | 5 por minuto, como máximo 3 en 10 segundos | La mayoría de los formularios |
| Relaxed | 20 por minuto | Formularios tras un login, herramientas internas, eventos con Wi-Fi compartido |
| Strict | 2 cada 10 minutos | Formularios de contacto y de ventas, donde una repetición es un doble clic o un bot |
| Custom | De 1 a 1000 cada 10 segundos, minuto, 10 minutos, hora o día | Una entrada por persona, kioscos y otros casos especiales |
Comparativa de presets
Standard 5 por minuto, 3 en 10 segundos14 de 120 aceptados
Relaxed 20 por minuto59 de 120 aceptados
Strict 2 cada 10 minutos2 de 120 aceptados
Cómo se recargan los límites
Los límites son un margen que se recarga de forma continua, no una ventana de reloj fija. Un visitante tranquilo empieza con el margen completo y puede usarlo de golpe. Después, se permite un envío más cada ventana dividida entre el límite: cada 12 segundos en Standard, cada 3 segundos en Relaxed y cada 5 minutos en Strict. Tras una ventana completa sin actividad, el margen vuelve a estar completo.
Standard también tiene una regla de ráfaga de 3 envíos cada 10 segundos, así que su primera ráfaga es de 3, no de 5. Relaxed, Strict y Custom no tienen una regla de ráfaga aparte.
Límites que siempre se aplican
| Regla | Límite | Se cuenta por |
|---|---|---|
| Protección contra floods, antes de buscar el formulario | 600 por minuto | IP, sumando todos los formularios |
| Entre formularios | 30 por minuto, o la tasa por minuto de Custom si es mayor | IP, sumando todos los formularios |
| Todo el formulario | 300 por minuto, o un tope Custom de 1 a 10 000 | Formulario, sumando todos los visitantes |
GET /f/<formId>/schema | 60 por minuto | IP y formulario |
| El frame de verificación de Ikiform | 60 por minuto | IP y formulario |
| API REST | 100 por minuto | Clave de API |
Las tasas Custom más rápidas que la protección contra floods se rechazan al guardar; por ejemplo, una ventana de 10 segundos permite como máximo 100. Cargar el esquema de un formulario o la verificación humana nunca consume el margen de envíos.
Custom
- Envíos por visitante: un número entero de 1 a 1000, y una ventana de 10 segundos, un minuto, 10 minutos, una hora o un día.
- Tope por minuto para todo el formulario: opcional, de 1 a 10 000. Sustituye el valor por defecto de 300 por minuto para todo el formulario.
- Una ventana de una hora o un día sirve para formularios de una entrada por persona, como sorteos o confirmaciones de asistencia. Recuerda que muchas personas pueden compartir una IP, por ejemplo en una oficina o un evento.
Cuando se alcanza un límite
El envío se rechaza con 429 rate_limited y una cabecera Retry-After con los segundos enteros que faltan para que se permita el siguiente envío. Los envíos de formularios del navegador ven una página alojada "Slow down". El código con fetch puede leer Retry-After, porque Ikiform la expone mediante CORS.
HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-Request-Id: req_01k7v2c9t3e8m5q4x6z0a1b2c3
Content-Type: application/json; charset=utf-8
{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Please slow down."},"request_id":"req_01k7v2c9t3e8m5q4x6z0a1b2c3"}- Espera los segundos de
Retry-Afterantes de volver a enviar. - Si los visitantes legítimos alcanzan el límite, cambia el formulario a Relaxed o Custom.
- Si tu servidor envía en nombre de los visitantes, todos los envíos comparten la IP de tu servidor. Consulta Desde un servidor.