ID del formulario

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

PresetPor visitante y formularioIdeal para
Standard (por defecto)5 por minuto, como máximo 3 en 10 segundosLa mayoría de los formularios
Relaxed20 por minutoFormularios tras un login, herramientas internas, eventos con Wi-Fi compartido
Strict2 cada 10 minutosFormularios de contacto y de ventas, donde una repetición es un doble clic o un bot
CustomDe 1 a 1000 cada 10 segundos, minuto, 10 minutos, hora o díaUna entrada por persona, kioscos y otros casos especiales

Comparativa de presets

Un visitante pulsa Enviar una vez por segundo durante 2 minutos. Cada cuadrado es un segundo: los rellenos se aceptaron y los vacíos recibieron 429.

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

ReglaLímiteSe cuenta por
Protección contra floods, antes de buscar el formulario600 por minutoIP, sumando todos los formularios
Entre formularios30 por minuto, o la tasa por minuto de Custom si es mayorIP, sumando todos los formularios
Todo el formulario300 por minuto, o un tope Custom de 1 a 10 000Formulario, sumando todos los visitantes
GET /f/<formId>/schema60 por minutoIP y formulario
El frame de verificación de Ikiform60 por minutoIP y formulario
API REST100 por minutoClave 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.

429 Too Many Requests
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"}
  1. Espera los segundos de Retry-After antes de volver a enviar.
  2. Si los visitantes legítimos alcanzan el límite, cambia el formulario a Relaxed o Custom.
  3. Si tu servidor envía en nombre de los visitantes, todos los envíos comparten la IP de tu servidor. Consulta Desde un servidor.
Los ajustes de límites de frecuencia son privados. Nunca los expone el endpoint del esquema ni la API REST.