Auto insurance

Accessible CAPTCHA

Quick Links:

A little more than a year ago I started a PHP project called “Accessible CAPTCHA”. The goal of this project was to create a CAPTCHA system that’s easy to integrate into any PHP application and accomplishes the following goals: accessability, security, and scalability. One of the major problems with most current CAPTCHA solutions is the fact that blind or visually impaired users often do not have a mechanism to use them or have to use a secondary audio system. Most systems have trouble finding a balance between complexity and security, with many users already complaining they are too difficult or complex, and image and audio based systems using up far more CPU time than I feel they should. With image and audio solutions in an arms race with spammers to prevent OCR and voice recognition scanners from automating the solving of these CAPTCHAs it seems to me that developers have overlooked a more simple and elegant CAPTCHA solution: a text-based CAPTCHA.

The Accessible CAPTCHA asks users random questions from a database of very simple questions. The questions contain markup that allows the system to randomize how the questions are asked. It is easy to add new questions and, with a little PHP skill, add new types of questions. Below are a few examples of questions a user of this system might be asked (and possible answers). You can also access an example implementation of the Accessible CAPTCHA here.

  • What color is the sky? (acceptable answers might include blue, grey, black… any plausible color would at least show a basic understanding of the question)
  • Do you dream? (yes)
  • Do you dream of nothing but unicorns? (no)
  • If you start with the number eight and count forward 2 numbers, what number do you have? (10 or ten)
  • What is the fifth letter in aardvark? (v)

With a decent number of questions and mechanisms that allow the randomization of how those questions are asked these questions should be extremely difficult for a bot to reliably answer. If done properly this system would require spammers to create a true natural language processing system, which computer scientists have been struggling to create for decades. Advances in image and voice recognition are occuring at great speeds and have proven to be a simpler problem to solve than natural language processing. The Accessible CAPTCHA system should provide stellar automation prevention until natural language processing systems have advanced enough to fool real humans into thinking they are talking with another human.

After developing the system I found that none of my web applications had enough traffic, users, and spam to actually warrant its use… until now. Recently my wordpress blog has started to become innudated with spam. Spam detection provided by plugins like Akismet is quite good at detecting this spam, but I am still sick of it showing up in the first place. I decided a CAPTCHA was needed, and after looking at the current wordpress CAPTCHA plugins I knew what I had to do… the Accessible CAPTCHA system needed to be packaged as a wordpress plugin.

Today I have accomplished that. You can download version 0.1 of the Accessible CAPTCHA WordPress Plugin here.

To install, simply extract the ‘acaptcha’ directory in the zip file to your wordpress /wp-content/plugins/ directory. You will then need to call get_captcha_box() within the comment form in your comments.php template file.

To customize the questions edit the questions.txt file located at /acaptcha/questions/questions.txt. This file is tab seperated and editing it should hopefully be self-explanatory.

If you have any questions about this plugins or any problems using it please drop me a line. My email is carl, over at examancer.com.