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.