2006
05.27

Adiós, Captcha

Captcha! fue mi segundo plugin. Cuando empecé a crearlo sabía que la solución no era la más adecuada y que no iba durar para siempre. Por aquel entonces tenía WordPress 1.5 y no conocía Akismet. Había visto otros Captchas, pero me parecían fácilmente quebrantables.

Con la llegada de WordPress 2.0, Akismet ya es una solución madura. Sin embargo, mucha gente se queja de que ralentiza el blog. E incluso un amigo me comenta que a veces le da falsos positivos (comentarios válidos etiquetados erróneamente como Spam). Si recibes mucho Spam, además, examinar la cola de Spam para ver si se ha colado algún falso positivo puede ser tedioso.

Con Captcha! nunca tuve esos problemas. Desde que lo instalé sólo me entraron 2 comentarios no válidos. Lo creais o no, hay gente intentando romper la seguridad de captcha mediante OCR, como Pwntcha y este otro, que asegura que HN_Captcha es fácilmente soslayable “en una tarde” (personalmente creo que la empresa quiere vender su producto, y que Captcha! es una solución gratuita y bastante fiable). Aunque Captcha! se basaba inicialmente en la clase PHP HN_Captcha, creada por Horst Nogajski bajo licencia GPL (¡Gracias, Hosrt!), hice varias modificaciones para hacerla más fuerte.

Una de las cosas que aprendí tras estudiar informática en la universidad, es que las soluciones como Captcha! no son elegantes: creé un Javascript complejo para borrar el botón de envío original (lo cual no funciona con todas las plantillas de WordPress), y necesita ficheros externos (las fuentes TTF de Dafont, que no empaqueto con el plugin para evitar problemas de licencias).

Pero lo peor de todo es que incomoda a los usuarios. Por ejemplo, un amigo tuvo serias dificultades para poner un comentario, y llegó a impacientarse. Yo mismo he tenido dificultades para dejar comentarios en las webs de otros usuarios de este plugin, y por último y no menos importante: los usuarios con problemas de visión lo pueden tener realmente difícil. Internet es un medio predominantemente visual (aunque eso cambiará), pero los blogs están más que nada para transmitir contenido, no para ofrecer bellos diseños (bueno esa es mi visión).

En definitiva, los captchas incomodan a los lectores que se supone que tiene que proteger. ¿Por qué no hacer una protección que incomode a las máquinas en vez de a las personas? Pensé en una solución criptográfica, quizá usando Javascript (AJAX). No me hizo falta. Otro investigador informático (¿ingeniero?) ya tuvo esa misma idea, y ha ideado WP-HashCash que hace exactamente eso.

Lo he instalado en mi sistema y he desactivado Captcha!. Está funcionando perfectamente. No hay Spam, no hay Captcha, y no hay problemas con los usuarios. :) Así que, ¿por qué seguir desarrollando Captcha!? ¿Vale la pena? No.

Captcha! no me proporciona ningún beneficio. No gano dinero por esto, y pierdo mucho tiempo dando soporte gratuito a la gente. De hecho, al final acabé dando soporte y manteniendo este blog en vez de publicar información (que se supone es el propósito del mismo).

Mantener Captcha! es tentador. Incluso aunque haya dejado de usarlo, otros usuarios podrían seguir haciéndolo. Desde que empecé a desarrollar XSPF player y Captcha!, mi web obtuvo un montón de visitas. Podría seguir desarrollando Captcha! simplemente para seguir siendo más visitado, pero no lo haré. Es el poder del ego y el enlace, como ya expliqué en un post anterior, lo que me impulsa a hacerlo: ser más visitado, darme a conocer, volverme famoso. :D

Pero dar soporte gratuito en mi tiempo libre no vale la pena (ya me pagan por eso en mi trabajo actual), porque me impide hacer otras cosas que realmente me gustaría, como por ejemplo ¡publicar entradas! ;) Hay otras maneras de atraer visitas a mi blog, y desarrollar extensiones no es una muy buena: cuando la gente llega aquí a por Captcha! o XSPF Player, no se detienen a leer otras áreas. En vez de eso, simplemente se descargan el plugin y no vuelven a menos que tengan problemas. Mi buzón de correo está inundado de mensajes pidiendo y en algunos casos *exigiendo* soporte por lo que se supone que es un hobby para mí (por supuesto, nadie hace siquiera una donación). ¡Y acabo sintiéndome esclavo del soporte gratuito a problemas de gente que ni siquiera conozco, en vez de arreglar los míos! Mucha gente quiere las cosas rápidas y fáciles (tiempos modernos), si no, se frustran y se molestan. Yo también necesito *mi tiempo*, y desarrollar Captcha! me ha llevado un par de horas diarias en lo que va de año. Tengo dos sistemas para hacer pruebas, pero hay montones de configuraciones alternativas de WordPress por ahí, en internet, completamente diferentes a la mía: diferentes versiones de PHP, servidores Linux y Windows, limitaciones de memoria, otras extensiones que interactúan con la mía, etc. etc.

No me malintrepreten! :) No estoy serio por esto. Simplemente, creo que hay cosas más interesantes por hacer.

Respecto al Spam, WP-HashCash y sus derivados son métodos que en el futuro fallarán. Ello se debe a que estos métodos se pueden automatizar (es posible crear programas que interpreten el JavaScript, del mismo modo que los navegadores actuales, y que envíen Spam; ya he visto 2 formas de hacerlo por internet). Es sólo cuestión de tiempo.

Cualquier forma de diferenciar a un humano de una máquina, necesariamente requiere la intervención de un humano (como hace Captcha! actualmente). De otro modo, ese método será automatizable, y por lo tanto, programable en una máquina. ;) Así que sólo cuando el método actual (WP-HashCash) haya sido superado, volveré a resucitar Captcha!

Existe una Wiki donde iré colocando cosas sobre Captcha!, pero este plugin, por el momento al menos, dejo de desarrollarlo, a menos que lo vuelva a necesitar.

  • Google Buzz
  • Twitter
  • Meneame
  • Facebook
  • Posterous
  • Share/Bookmark

Related posts:

  1. ¿Captcha Inseguro?
  2. Migrado a WordPress 2.0
  3. Technorati, Google no me indexan…?
  4. Mejora de Trackback Validator
  1. Adolfo, creo que eso lo tendrías que preguntar al autor de WP-Hashcash. De todas maneras, cuando te sale ese mensaje, es porque es SPAM, o porque el usuario tiene javascript desactivado. WP-HashCash (y todo hoy día) necesitan Javascript para funcionar.

    Ese mensaje te dice que el usuario o es un spammer o no usa javascript.

  2. He instalado WP-HashCash sin problemas, pero ahora la mayoria de los comentarios de usuarios sin registrar me los identifica como spam con el mensaje:
    [WORDPRESS HASHCASH] The poster sent us ‘0 which is not a hashcash value.

    Como puedo resolverlo?

  3. me ha servido de mucho tu comentario. Gracias

  4. [...] cosa que leí en el blog de boriel que es el autor de Capcha! Es que dejaba de usar su propio invento para usar para usar WP HashCash que es un sistema contra el [...]

  5. Gracias David (#44) ;)

    En realidad creo que por ahora, WP-Hashcash es de lo mejor que hay (sigo usándolo y casi no tengo Spam). En cuanto al a interacción que comentas, pues depende, como todo. Hay usuarios a los que les molesta dar su email (y ponen un email falso) supongo que por el tema del Spam.

    En realidad en el blog no se comprueban los correos. En el foro sí, porque hay que registrarse.

    Supongo que cuando se generalice el uso de OpenID, todo esto cambiará. :)

  6. creo que lo que comentas es cierto. Pero al contrario de tu pensamiento, creo que no deberias anclante en no incluirlo, si no que puedes actuar de otras formas, por ejemplo puedes filtrar los mensajes de distintas formas como por ejemplo ip o tiempo entre mensajes. Como bien dices todo se puede automatizar y si algo me a enseñado internet, es que por mucho que sepas siempre hay alguien que sabe mas que otro. Por eso tiene que existir cooperacion entre las personas y no ser avaricioso y compartir los conocimientos. Mi aporte para todo el mundo que utilice o no captcha es que al usuario se le envie un correo con alguna pregunta o alguna accion sobre el sitio para que sea valido el envio, de tipo “ingresa en la pagina (numero o direccion) y pincha el el link cuarto” o “responde a: (ejemplo: el apellido del rey de españa es?)”. Solo hay que buscar soluciones a los nuevos problemas aunque la mayoria de las veces sea complicado o casi imposible.PD: Muy bueno el foro. Volvere aunque no tenga preguntas.

  7. muy bueno el post :-P

  8. [...] about most strong Captcha having been defeated. Also, on top of visitors getting annoyed by it, the Captcha plugin I am using has gone unmantained lately. And, one way or another, I am getting comment spam again. Which is something I really hate [...]

  9. fantastico

  10. Hi, Jayson:

    I was about to tell you to move to hashcash, but it seems you have done it already! ;)

  11. Thanks for it. It has worked well for a while. I need to find a better solution now though.

    Cheers!

  12. [...] コメントの投稿がうまく反映されず WordPress 2.5 に対応したCaptchaを探していたところ Captchaプラグインの製作者が”別のを使っているよ”との事 [...]

  13. funwl65: That’s why I removed it. Some people doesn’t like Captchas! I’m now using another anti-spam technique. See hashCash at http://wordpress-plugins.feifei.us/hashcash/

    I explain everything here

  14. Trying to see what captcha you are using :) . I used your graphical captcha on my wordpress and it worked very well but lost some visitors 8) .

  15. es un plugin ingenioso y leo esyte post y te doy 200% razón. Te entiendo perfectamente, el tiempo es un bien escaso y la gente es muy ávida del tiempo de los demás…

  16. [...] El Rincón de Boriel – Bye Bye Captcha [...]

  17. thanks a lot
    been very helpful as i was looking for a solution for spam

  18. Mark (#31):

    I agree with you to some extent, but, for example, for logic question captchas, people might find difficult to read and understand them if they’re are in other language (for example, I was unable to post to another blog, because the question was in german and I couldn’t understand a word).

    On the other Humans are much better at Visual problemas than computers nowadays. And generating logic-questions must also be automatic generated (by another computer). So if the cuestion can be automatically-generated, I guess it should be automatically answered (e.g. by detecting some language patterns).

    Asking for colors might not be a good idea (for Daltonic people, or visually impaired) either. As you can see, it remains an open question.

  19. CAPTCHAS shouldn’t be difficult to read. Every implementation I’ve ever seen is terrible. Computers are pretty good at OCR, so why are we providing humans with an OCR problem? The one thing we know humans are better than computers at is logic problems. A better CAPTCHA would be “type the second word from the end of this sentence”, then you’d type “this” to pass the test. How about alternate the font color of each word and tell them to type the blue word?
    Or alternate the size of font and ask the user to type the word with the smallest font? Or the word that has a smiley face instead of an ‘O’? Or type the first letter of each word in the sentence? Humans are better suited than computers for all those problems.

  20. [...] nifty Captcha! plugin too late. I just visited the site, and noticed that the plugin author has decided to stop updating the plugin. His reasons are sound, I’m not complaining. I’m just posting this to notify anyone [...]

  21. Daniele (#27 and #28):

    If fact I’m working on another proyect that will be able to run javascript (so could be used to bypass hashcash and others). I guess I will resurrect Captcha! one of those days.

    Sometimes it fails (don’t know why), and yes, you have to reenter your comment. If so, just click “back” in your browser so you won’t lost what you have written. :S

  22. btw, while posting the above, hashcash blocked me and I had to try again… :-(

  23. “[...] Regarding Spam, WP-HashCash and its derivatives are methods that will eventually fail in the future. This is because those methods can be made automatic (it’s possible to make a program which interpretes JavaScript, the same way current browsers do, and sends Spam; I’ve already seen 2 ways to do that in Internet). It’s only a matter of time.
    Any test made to detect whether a user is a human or a machine, will need human intervention (like Captcha! currently does). Otherwise, the test method could be made automatic and, thus, programmable on a machine. So, only when current plugin (WP-HashCash) has been beaten, I will resurrect Captcha! again. [...]”

    I completely understand you point about needing more time for your life and so on.
    But the above (“it’s a matter of time”) is true.

    Still, your plugin remains a very good/useful piece of code that made many people happy! Be proud of that :-)

  24. [...] koden varje gång de kommenterade. När jag gick till upphovsmannens till pluginet hemsida såg jag att han själv inte längre använde det av just den anledningen. Istället hade han gått över till ett annat plugin som fixade något [...]

  25. 8O muy bien me gustaria que cuando lo hayan termino me avisaran para probarlo.. Saludos

    http://www.webaction.com.mx/blog

  26. [...] I was almost sure that Askimet was based on captcha, a technology that prompts a commenter to type a random sequence of alphanumeric characters displayed on a fuzzy image randomly generated at runtime. A comment will be accepted only if the keystroke matches the string displayed on the fuzzy image. Instead, Askimet is more similar to a traditional email spam filter. It has a large database of known spammers and tries to match the “signature” of every new comment with one or more of the records in its database. While I have never been a big fan of filters based on a database of known spam (not because I like spam, but because I think that they are not the best solution to spam), I decided to enable Askimet as it was pre-installed on my Dreamhost account AND I needed to stop being spammed immediately. Using Askimet has helped fighting spammer BUT, it created another problem: too many comments marked as spam, so many that I cannot possibly review them and my only option is Delete All. Now you know why I am not a big fan of database-based spam filters. Today I was ready to spend a couple of hours installing one or more of the captcha plugins for WordPress, a task that I would have gladly avoided if I could. I started my search from the WordPress plugins page and landed into the Spam Tools page that listed 8 plugins under Captcha. I decided to start with the one called Captcha! BUT…when I clicked on its link I landed on a website sporting a vintage Sinclair ZX Spectrum ( <3 ) as top banner and this text in prominent display: Warning! CAPTCHA! is DISABLED on this site. Even though this plugin is still maitained, I’m using another one. Read why. [...]

  27. [...] displayed on a fuzzy image randomly generated at runtime. A comment will be accepted only if the keystroke matches the string displayed on the fuzzy image. Instead, Askimet is more similar to a tradisional email spam filter. It has a large database of known spammers and tries to match the “signature” of every new comment with one or more of the records in its database. While I have neever been a big fan of spam filters (not because I like spam, but because I think that they do are not the best solution to spam), I decided to enable Askimet as it was pre-installed on my Dreamhost account AND I needed to stop being spammed immediately. Using Askimet has helped fighting spammer BUT, it created another problem: too many comments marked as spam, so many that I cannot possibly review them and my only option is Delete All. Now you know why I am not a big fan of database-based spam filters. Today I was ready to spend a couple of hours installing one or more of the captcha plugins for WordPress, a task that I would have gladly avoided if I could. I started my search from the WordPress plugins page and landed into the Spam Tools page that listed 8 plugins under Captcha. I decided to start with the one called Captcha!vinta BUT…when I clicked on its link I landed on a website sporting a vintage Sinclair ZX Spectrum ( <3 ) as top banner ans this text in prominent display: Warning! CAPTCHA! is DISABLED on this site. Even though this plugin is still maitained, I’m using another one. Read why. [...]

  28. That hash thing doesn’t work for me. It’s not letting any comments through.

  29. Thanks for the honesty. It is very refreshing.

  30. How about a flash captcha, is it secure enough?

    Have a look at this visual captcha
    Visual Flash CAPTCHA

  31. I will try both Captcha! as well as hashcash, for interest’s sake. Thank you very much for the time and effort you have put in Boriel – it’s more appreciated than you think! 8)

  32. Looks like I’m too late, but I will also try Hashcash. Goodluck!

  33. [...] After seeing the good results in other blogs, I’ve implemented it in mine as well. About the future of Wp-hashcash I agree with the author of Captcha plugin, who says: [...]

  34. Genial, funciona de lujo, acabo de parar un ataque de spam solo con wp-hashcash, antes lo filtraba todo Akismet pero entraban más de 1000 comentarios de spam cada minutos y el servidor sufria :) ahora no entran :)

  35. [...] Das bedeutet allerdings, dass HashCash nur funktioniert, solange automatisierte Spam-Software Javascript nicht interpretiert. Die Lösung bietet also nur Schutz, bis der Feind technisch aufrüstet: Regarding Spam, WP-HashCash and its derivatives are methods that will eventually fail in the future. This is because those methods can be made automatic (it’s possible to make a program which interpretes JavaScript, the same way current browsers do, and sends Spam; I’ve already seen 2 ways to do that in Internet). It’s only a matter of time. Any test made to detect whether a user is a human or a machine, will need human intervention (like Captcha! currently does). Otherwise, the test method could be made automatic and, thus, programmable on a machine. So, only when current plugin (WP-HashCash) has been beaten, I will resurrect Captcha! again. [via boriel.com] [...]

  36. WordPress-Tutorial: Rechnen mit gegen Spam…

    Ich habe datenschmutz von händischer Kommentaraktivierung umgestellt auf eine kleine “Rechenaufgabe”, weil ich nicht jeden Kommentar einzeln händisch freischalten möchte. Die von mir gesammelten Infos zum Thema optimale S…

  37. So how does it work? Why I can’t see it in your web page?

  38. Boriel, supongo que estás en tu derecho.

    Para cuando quieras resucitar Captcha! te dejo una posible mejora. Cuando se falla al introducir la clave y presenta una nueva, el mensaje escrito desaparece.

    A algo así creo que se refiere Edanna en el primer comentario.

    En todo caso, gracias y buena suerte.

  39. Thanks Boriel. I was searching for some cool plugin. After reading your post, I think I won’t need this plugin anymore (I may need it it the future though). I’ll check out HashCash.

    Gracias.

  40. Oh I guess I could LEARN TO READ…. *sigh* Sorry.

  41. boriel!
    first of all: thanks a lot for all the work you put into captcha over those years. it was a great help for me & all my friends using wordpress. it was the first cool and easy solution to have wp-guestbooks without getting all this spam-crap.
    i’ll check out this hascash thing, as you proposed … and that’s another thing i want to thank you about: allways giving instant help, and good advise for free.
    all the best for your future works. you’re great! ;)

  42. [...] Here’s a link to the plugin: HashCash, made by Elliot. The Captcha! plugin wasn’t really working for me. And if I read this article correctly, the maker of the Captcha!-tool did think so to. [...]

  43. Bueno, yo llegué aquí por el XSPF Player y te sigo leyendo ;) En serio, entiendo tu punto de vista completamente. Ya me parece meritorio dedicar tu tiempo, energias y conocimientos a algo que te aporta muchas veces más cabreos que satisfaciones.

    Saludos

  44. [...] On the other hand, as I explain in my blog, I’ve temporally stop using Captcha!, because I’ve found a (temporally) better solution. I explained it here. This solution will be defeated (yes , it will) in the future, but meanwhile, I think it’s better to use it. [...]

  45. [...] SPAM management, pt. 2 Tags: Experiences, Life, spam management, TechnologyWell, looks like I found this nifty Captcha! plugin too late.  I just visited the site, and noticed that the plugin author has decided to stop updating the plugin.  His reasons are sound, I’m not complaining.  I’m just posting this to notify anyone reading that there may be hiccups as I look for and try out new SPAM management plugins. Technorati Tags: Experiences, Life, spam management, Technology [...]

  46. Boriel,

    Thank you for producing the plugin. Your reasons for discontinuing support are sound, and I wish you the best in pursuing things you enjoy more. I do appreciate the speed with which you provided support for it, it was faster than the help I’d gotten for most of the other plugins I’m running, far beyond any expectation I might have had.

    Thanks again,

    David

  47. [...] Tja, so wie es aussieht ist wird das von mir vor einiger Zeit eingestellte Captcha Plugin nicht mehr weiterentwickelt (http://www.boriel.com/2006/05/27/bye-bye-captcha/). Der Autor empfiehlt ein Plugin namens HashCash. Dennoch, und das möchte ich hier noch einmal deutlich anmerken, gibt es keine sicheren Systeme! Man kann es Spammern möglichst schwer machen, allerdings ist es auch hier nur eine Frage der Zeit bis ein entsprechendes Gegenmittel gefunden wird. [...]

  48. Gracias, Edanna. ;)

    Pero, como dije más arriba, tarde o temprano, el método actual será superado. Es cuestión de tiempo. Mi blog recibe diariamente cerca de 100 mensajes de spam. No es un simple capricho.

    Cualquier forma de verificar que al otro lado hay un humano requiere algún tipo de intervención (como Captcha!). Al menos, por ahora, no se me ocurre otra forma, aunque estoy en ello.

  49. Bueno, Captcha está bien, el problema es que imagino que se ha de facilitar al usuario todo lo posible el introducir comentarios, tras un fallo al hacerlo mucha gente omite intentarlo por segunda vez.

    Y por otro lado, gracias personas como tú, el mundo de la red evoluciona, son pequeños granos de arena que juntos nos dan todo lo que poseemos hoy día.

    ¡Gracias!