Extension:QuestyCaptcha

QuestyCaptcha is a plugin for the ConfirmEdit extension. Instead of using a math problem (trivially defeated) or an image (see below), QuestyCaptcha makes users answer a question. The site owner adds questions (and their answers!) in LocalSettings.php, and the extension picks from them randomly.

Installation
The installation process largely mirrors that of ConfirmEdit. require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" ); require_once( "$IP/extensions/ConfirmEdit/QuestyCaptcha.php" ); $wgCaptchaClass = 'QuestyCaptcha';
 * Download the snapshot for your version and extract it
 * Create a folder in the extensions folder named ConfirmEdit
 * Upload the files to the extensions/ConfirmEdit/ folder
 * Edit LocalSettings.php in the root of your MediaWiki installation, and add the following lines near the bottom:
 * Below this, add some questions following the format in QuestyCaptcha.php
 * You can also configure ConfirmEdit's triggers and other options

Thoughts
Image-based CAPTCHAs have a few vulnerabilities. Bots using optical character recognition can crack them, and the only defense is to make the images harder to read for humans and computers alike. OCR algorithms are constantly being improved, though, and computers will probably eventually be better at solving CAPTCHAs than humans. In the meantime, spammers can pay workers in developing countries to solve CAPTCHAS or trick ordinary Web users into solving them. And math-based CAPTCHAs are trivial enough for automated spambots to crack for obvious reasons.

A question-based CAPTCHA isn't vulnerable to OCR. Humans can still be paid to solve them, but a question can be context-sensitive: if a question asks you which plant MediaWiki uses for its logo, the answer isn't going to be obvious unless you're on MW.org.

TODO

 * Add a special page for viewing, adding, editing, and removing questions
 * Stats on how many people succeeded or failed for each question?