Formularios protegidos contra bots sin seguimiento externo
Los formularios de contacto son uno de los puntos más fáciles de atacar para los bots de spam en sitios pequeños. La respuesta habitual suele ser añadir un servicio externo de verificación, pero eso introduce seguimiento, dudas de consentimiento, fricción visual y otra dependencia más.
Nibbly ahora utiliza un enfoque más discreto: los formularios de contacto públicos se protegen con varias capas ligeras del lado del servidor que encajan con su arquitectura de archivos planos.
Qué ha cambiado
- HTML del formulario con carga diferida — la página inicial solo contiene un contenedor vacío. El formulario real se solicita después de una breve demora, por lo que muchos bots simples no encuentran un formulario listo para enviar en la primera respuesta.
- Tokens de un solo uso — cada formulario renderizado recibe un token nuevo generado por el servidor. Los tokens se guardan en un archivo JSON plano, caducan automáticamente y se consumen después de la validación.
- Tiempo mínimo antes del envío — los envíos que llegan inmediatamente después de crear el token se rechazan.
- Campo honeypot — los bots que rellenan campos invisibles quedan atrapados sin molestar a visitantes reales.
- Limitación de frecuencia — los intentos repetidos se frenan con claves de cliente cifradas, sin guardar direcciones IP sin procesar.
- Comprobaciones sencillas de contenido — el spam evidente con enlaces se rechaza antes de llegar a la bandeja de mensajes.
Sin base de datos ni cuenta de captcha
La implementación sigue siendo pequeña a propósito. El estado temporal vive en content/form-tokens.json y content/form-rate-limit.json, ambos tratados como archivos generados. No hace falta una tabla de base de datos, un proveedor de desafíos JavaScript ni una dependencia externa de privacidad.
Amigable para desarrolladores por defecto
Para formularios personalizados, Nibbly ofrece helpers reutilizables como nibblyFormProtectionFields() y nibblyLazyFormPlaceholder(). Las personas que escriben plantillas a mano, y los LLMs que generan páginas Nibbly, pueden usar el mismo patrón simple en lugar de reconstruir la lógica antispam para cada formulario.
Los formularios de contacto integrados ya usan la nueva protección automáticamente.