Spambots, captchas y accesibilidad

April 17th, 2006  |  Published in accesibilidad, desarrollo, general  |  7 Comments

Phentermine, Viagra, Casinos, Sex, Levitra… Para cualquier persona que tenga presencia en la web, uno de los mayores incordios es el constante ataque de spambots, o scripts destinados a identificar formularios y enviar mensajes con en fin de conseguir enlaces, accesos a sistemas, generar más spam. Esto es normal el plataformas de publicación distribuidas como Wordpress o sitios con muchas visitas a estos les añadimos los trolls y demás fauna de la red con comentarios improcedentes o fuera de tono, hace que ser webmaster tenga dos enfoques: ser una cruz o una “divertida” partida contra “los malos”. Personalmente, me lo tomo por el segundo enfoque.

Una de las soluciones diseñadas para limitar los ataques de robots son los Captchas. CAPTCHA es el acrónimo de “Completely Automated Public Turing Tests to Tell Computers and Humans Apart”, traducido sería “Test de Turing Para Diferenciar Máquinas y Humanos” El concepto fue desarrolado en la universidad Carnegie Mellon y denominado así por IBM en el año 2000. Según la Wikipedia, se trata de hacer que el humano pruebe su condición.

Aquí vemos un captcha tradicional como el de barrapunto.com
barrapunto

Como curiosidad, Alan Turing, es uno de los padres de las ciencias de la computación moderna y la ingeligencia artificial y además, un gran corredor de fondo, para quien diga que los científicos suelen ser sedentarios.

En alzado, recibimos cientos de mensajes de spambots diarios con enlaces de todo tipo. Tantos, que hemos tenido que cerrar el sistema de comentarios en abierto por un tiempo. Cada iniciativa destinada a limitar su actividad, es superada en poco tiempo. Son listos los malditos… afortunadamente, alzado no es un banco online, y para mí es una vía de aprendizaje contínuo, por lo que la situación me la tomo como un reto divertido más que como una preocupación (de momento).

Tras conversaciones con Eduardo, he querido hacer un experimento, inspirado en este post de mildiez y los comentarios de John Udell.

Mi idea, evitar a toda costa el tradicional CAPTCHA y dotarlo de principios más humanos. Estoy seguro de que no tardarán en saltárselo, pero al menos, durante un tiempo estaremos libres de basura. Una de las ventajas de alzado, es que su gestión de contenidos ha sido desarrollada 100% artesanal, por lo que nos evitamos ataques masificados como los que se puedan lanzar contra sistemas de populares como MSN, Yahoo o contra plataformas de weblogs como esta (Wordpress). Otros agujeros tendrá, si les interesa, que se tomen la molestia.

Los objetivos: mantener el carácter anónimo de los comentarios de los usuarios con un método sencillo, mínimamente accesible y no basado en esas combinaciones de caracteres que incluso yo mismo fallo al identificar. Por último, evitar los debates teóricos y meternos de lleno en la práctica con el fin de compartir lo aprendido.

La solución ha sido crear un sistema similar a un Trivial: el lector que quiera enviar un comentario, se encontrará con un tipo diferente de pregunta que deberá responder para que su mensaje aparezca publicado. El ejemplo en alzado, en la pantalla de debajo.

vista general

Características:

  • El sistema es artesano, desarrollado en PHP, y es conceptualmente un prototipo integrado en el gestor de contenidos de alzado
  • Evita inicialmente la validación manual de comentarios por parte del editor de contenidos
  • Se basa en un sistema de preguntas de características diferentes, editables manualmente, y escalable en tamaño
  • Las preguntas se realizan en el mismo momento de postear el comentario por el usuario, como un captcha tradicional
  • Estas preguntas son obvias, sencillas resultando fáciles de responder para cualquier persona con una formación normal
  • Las preguntas se basan en HTML estándar, por lo que pueden aplicarse ciertos principios de accesibilidad
  • Y lo más importante de todo, son cambiantes, es decir, se presentan diferentes tipologías de preguntas aleatoriamente. Un spambot que quiera atacar el sistema debería tener varias estrategias: coordenadas, identificar imágenes en fotos, responder a preguntas sencillas, realizar cálculos simples… o incluso remitir al usuario a otra sección del web para buscar las respuestas
  • Dándole vueltas de manera creativa, podemos conseguir que las personas que comenten a artículos sean conocedores de la materia, si se implementa un sistema de cuestionario relacionado con la temática del sitio o de artículos, elevando así la calidad de los comentarios y por tanto del sitio

Algunos ejemplos de preguntas:

captcha trivial
Pregunta, tipo Trivial, tema, “Geografía”. La imagen, lleva su correspondiente texto ALT para dar una pista a los lectores de voz.

captcha trivial 2
Otra pregunta de “Geografía”. Otro tipo de preguntas, con algo de riesgo, podrían ser estas 10 cosas que todo el que tenga un graduado escolar debería saber

captcha obviedad
Una obviedad, como por ejemplo, “la nieve es de color…”, “el cielo es de color…”

captcha coordenadas
Tabla de coordenadas por palabras. Otros usos, con números, realizar cálculos sencillos…

captcha calculo sencillo
Cálculo sencillo.

Insisto, alzado no es un banco y la plataforma es artesanal por lo que desconozco si esta técnica combinada con otras, sería inicialmente aplicable a otros entornos.

Claramente, y sea como sea, este tipo de acciones rompen el flujo de conversación de un weblog. Es una lástima que las personas tengan que acreditar su condición para no ser dominadas por las máquinas y hacerles pasar por esto. Por otro lado espero dos tipos de efectos: uno, de alta probabilidad. Que haya usuarios que usan el sistema para jugar con él y probarlo. Otro, con muy baja probabilidad, que el tener que responder a la pregunta haga que aquellos que participen sean verdaderamente interesados en el debate.

El experimento lleva dos días en pruebas, abierto a debates, seguiremos informando…

Otros contenidos

Responses

  1. demimismo says:

    April 17th, 2006 at 19:49 (#)

    Otra alternativa son los tests que se autocompletan con javascript, la accesibilidad se mantiene y la usabilidad se multiplica (el test ni se ve si tienes javascript habilitado)

    Puedes verlo en funcionamiento en el blog de Ramón, la efectividad contra spam es de momento del 100%, aunque también hay que decir que cae alguna persona que otra :-)

    Saludotes.

  2. Luis Villa says:

    April 18th, 2006 at 01:30 (#)

    Gracias por tu comentario! He posteado un comentario en el weblog de Ramón, y no he podido verlo en funcionamiento… ;-) Imagino que en breve estos demonios entenderán Javascript… pero mientras tanto o hasta que alguien por fin resuelva los temas de identidad en la web, es una solución.

  3. Kapikua says:

    April 19th, 2006 at 08:37 (#)

    Me gusta muchisimo la idea, sobre todo porque no hay un patron por el cual un bot pueda guiarse, al ser pruebas diferentes dudo mucho que consigan saltarselo.

    Muy buena idea ¡¡

  4. Pablo says:

    April 19th, 2006 at 15:39 (#)

    Casualmente estamos implementando CAPTCHAS en muchos de los formularios públicos de los sitios web que desarrollamos, porqué la verdad es que los spammers nos están volviendo loco.

    También vengo analizando el tema de la usabilidad desde hace tiempo y al chocarme con este problema de los CAPTCHAS me desanimó un poco.

    Está buena esta idea, pero me parece trae tantos o más problemas que los CAPTCHAS (no estoy hablando de los CAPTCHAS como los de Microsoft que me parecen exagerados).

    Internet está lleno de usuarios con “nada” de experiencia, “cortos”, y muchos que no tienen idea de lo que es el coliseo romano, menos aún donde está ubicado.

    También hay que considerar que algunos escribirán algunos nombres de ciudades con errores ortográficos, aunque se supone que el sistema debería estar preparado para esto. También el caso de personas que conocen a duras penas el idioma del sitio web, pero igual quieren ponerse en contacto con los responsables del sitio.

    A partir de conocer el problema de los CAPTCHAS decidimos simplificarlos. Todos los captchas que venimos haciendo muestran digitos numéricos en alguna tipografía legible y de un tamaño normal. Usamos colores con altos contrastes. Por esta razón no creo que sea un problema para muchas personas.

    Si bien los bots podrían tomarse el trabajo de “leer” las imágenes, la potencia de cálculo que a veces esto demanda podría desalentarlos bastante. Aunque es cuestión de tiempo.

    La verdad es que hoy no tengo conocimientos de bots capaces de leer las imágenes, y de haberlos, creo que con ir cambiando aleatoriamente las tipografías (pero siempre legibles por los humanos), y los colores, supongo que será suficiente para tener a rara la mayoría de los bots.

    Será cuestión de darle vueltas al asunto y buscar la forma de lograr un sistema que sea accesible para todos.

    Saludos

  5. Luis Villa says:

    April 20th, 2006 at 00:48 (#)

    Mil gracias por tus observaciones Pablo. Al diseñar cualquier sistema tienes que tener en cuenta a quién se dirige, y las preguntas serían parte del proceso de diseño, por lo que si es un sitio muy enfocado en una materia.

    En el caso de alzado, los usuarios son más bien avanzados por lo que este problema no se plantea.

    Efectivamente, esto da que pensar que para un sitio muy popular, el sistema de preguntas culturales, pueda fracasar o presentar riesgos. Entonces puede ser más adecuado el sistema de “tabla de coordenadas”.

    El caso es ir viendo posibilidades, y con este sistema de momento, no se han quejado los usuarios e importante: cero spam!! :-))

    Saludos

  6. Fernando says:

    April 21st, 2006 at 09:32 (#)

    Los captchas visuales son sencillísimos de romper con algoritmos de procesamiento de imágenes (si quieres el lunes te enseño algún ejemplo), así que romper un captcha basado en imágenes que no requiera algo de razonamiento humano tiene los días contados.

  7. pmg says:

    September 17th, 2008 at 00:02 (#)

    Buena alternativa, otro tema a tener en cuenta son las granjas de cosechas de captchas….en este caso estamos en la misma….un bot podría enviar las preguntas(HTML) a alguien en la india, que lo resuelva y complete la respuesta….que es lo que esta pasando ¿nop?…

    salu2s

Leave a Response