LFW

Blog · Formularios bien hechos

Frenar el spam sin CAPTCHAs

Los CAPTCHAs cobran peaje a los humanos y apenas frenan a los profesionales. La alternativa silenciosa: un honeypot, un reloj, un límite de frecuencia y una revisión de contenido que marca en lugar de bloquear, todo en el servidor, donde el visitante nunca ve nada.

El peaje mira en la dirección equivocada

Un CAPTCHA es su formulario diciéndole a cada visitante: hemos tenido problemas con bots, así que antes de leer su mensaje, demuestre que es una persona. El problema de la organización se ha convertido en la tarea del visitante.

Algunos visitantes pagan el peaje con ligereza, con un clic. Algunos lo pagan caro, a través de tres rondas de hidrantes y pasos de peatones. Y algunos no pueden pagarlo en absoluto: los rompecabezas visuales presuponen vista, las alternativas de audio son famosamente miserables, y los límites de tiempo castigan a cualquiera más lento con el teclado. Esos costos caen con más fuerza precisamente sobre las personas a las que las instituciones públicas existen para servir.

¿Qué compra el peaje? Menos de lo anunciado. Los servicios de resolución pasan un CAPTCHA por fracciones de centavo, y los bots modernos los pasan cada vez más sin ayuda. Mientras tanto, el propio widget suele ser un script de terceros que observa a sus visitantes, en una página que puede pertenecer a un organismo público o a una institución con miembros, lo cual es una conversación de privacidad y de compras que nadie programó. El rompecabezas cobra a los humanos, incomoda levemente a los profesionales, y sobre todo escenifica la seguridad en lugar de proporcionarla.

El spam es prolífico porque es perezoso

El spam de formularios funciona con economía de volumen. Un bot que envía a un millón de formularios no puede permitirse estudiar el suyo, así que se comporta de formas reconociblemente perezosas. Rellena cada campo que encuentra, incluidos campos que ningún humano puede ver. Envía al instante, uno o dos segundos después de cargar una página que una persona tarda medio minuto en leer. A menudo se salta la página por completo y publica directamente al punto de acceso. Y se repite desde la misma dirección a un ritmo que ningún humano confundido podría igualar.

Esa pereza es la oportunidad de diseño. No necesita superar al spam en general. Necesita rechazar en silencio el 99 por ciento automatizado, que se delata solo, y después tomar una decisión más tranquila sobre el resto escrito por humanos.

Tres comprobaciones que el visitante nunca ve

El honeypot: un campo extra, oculto para todos. Los visitantes videntes no lo ven, a los lectores de pantalla se les indica saltarlo, se elimina del orden de tabulación y el autocompletado está desactivado en él. Ningún humano lo toca jamás. Un bot que recorre fielmente los campos lo rellena, y el envío se condena a sí mismo.

Todo el truco vive en la palabra todos: oculte el campo solo con CSS visual y un lector de pantalla seguirá anunciándolo, y su trampa para spam ahora atrapa visitantes ciegos. Oculto significa oculto también para la tecnología de asistencia.

El reloj: anote cuándo se sirvió el formulario y qué tan rápido volvió el envío. Un formulario de contacto completado dos segundos después de cargar la página no lo completó alguien con una pregunta. Mantenga el umbral bajo, porque el autocompletado hace rápidas a las personas reales, y sigue siendo invisible para los humanos mientras filtra máquinas.

Y los límites de frecuencia: la misma dirección enviando treinta veces por minuto no son treinta ciudadanos. Las tres comprobaciones corren en el servidor, no le cuestan nada al visitante, no le piden nada a nadie, y entre las tres terminan casi por completo con el tráfico automatizado.

Lo que queda es una decisión de criterio

Lo que sobrevive a las redes lo escribió una persona: la oferta de enlaces, la propuesta de artículo invitado, la propuesta de negocio urgente. Distinguir eso de una consulta real es una cuestión de contenido, y la revisión de contenido obedece dos reglas de hierro.

Primera, marcar, no bloquear: etiquete lo sospechoso y envíelo a revisión, pero entregue todo, porque un falso positivo aquí es el mensaje de una persona real perdido en silencio, y un contacto perdido cuesta más que cien spams leídos y borrados. Segunda, fallar abierto: cuando la revisión se rompe, los mensajes pasan sin revisar. Un filtro de spam que puede perder correo ha fallado en un trabajo más importante que aquel para el que lo contrataron.

Una regla cubre ambas capas: nunca anuncie un veredicto. Un formulario que le dice a un bot que fue atrapado está proporcionando control de calidad gratuito al operador del bot, que se ajustará y volverá. El envío sospechoso recibe la misma pantalla de agradecimiento que todos los demás. La diferencia ocurre por completo de su lado, en qué montón aterriza y con qué etiqueta.

Cómo lo hacen los formularios de este sitio

Cada formulario público de este sitio (contacto, reserva, el boletín, la bolsa de talento) ejecuta la pila determinista exactamente como se describe: el honeypot acepta el envío de un bot con cara seria y lo descarta, y los límites de frecuencia acotan el volumen en el borde y otra vez en el origen. Lo que pasa lo lee una persona, que a nuestro tamaño es la respuesta honesta. No hay ningún CAPTCHA en todo el dominio, y el total acumulado de rompecabezas que se les ha pedido resolver a nuestros visitantes es cero.

Así que el mensaje ha sido aceptado, filtrado y guardado. Alguien todavía tiene que responderlo. La serie termina con lo que ocurre después del botón de enviar, donde los formularios dejan de ser una cuestión de interfaz y se convierten en una de operaciones.

Siga leyendo

6 de septiembre de 2026 8 minutos

Los cuatro archivos que nadie enlaza

Todo sitio web tiene cuatro archivos de texto plano que ningún visitante ve: robots.txt, sitemap.xml, security.txt y llms.txt. Los buscadores, los escáneres de seguridad y los agentes de IA los leen en cada visita. Qué es cada uno, quién lo lee de verdad, qué poner en él y la única regla que los mantiene a todos seguros. Esta semana repasamos la lista en nuestro propio sitio y encontramos huecos, así que la auditoría gratuita ahora los comprueba.

6 de septiembre de 2026 6 minutos

Nuestra imagen principal desaparecía en iPhone. Un bloqueador de anuncios la escondía.

Durante semanas, la imagen principal de tres de nuestras propias páginas desaparecía un segundo y medio en iPhone, solo en la primera carga. Nada lo reproducía en el laboratorio. Un rastreo de campo de cincuenta líneas lo encontró en tres cargas de página: un bloqueador de anuncios escondía cualquier elemento cuya clase empezara por ad-.

Todos los artículos →

Prefer to write?

Tell us what needs to work better.

Slow, fragile, hard to edit, missing a workflow. Say it plainly, and you'll get a straight answer, not a ticket number.

You'll get a straight answer, usually the same day.