BotBlock
BotBlock is a plugin for MovableType that is designed to prevent computer agents ("bots") from posting comments. It runs on MT 2.661, and probably some others as well, but it has not been extensively tested. I will probably port it to MT 3 whenever I get around to upgrading myself.
The idea
Robots that automatically post spam are just the vile spawn of Satan, clearly, but they're out there, and it'd be nice if blogs could defend against them. James Seng's mt-bayesian plugin is one tactic, but it still requires scanning for false positives, so isn't sufficient by itself. Many blogs have added a filter that requires one to read a graphic and type the text that it contains---Seng's SCode is one example of this---but this is hostile to users who by choice or necessity use a text-only browser.
Besides, the bots seem to be getting the hang of OCR.
What's something that robots can't do? As a researcher in computational linguistics, I can say that one of the hardest problems out there is language understanding, especially when it requires domain knowledge. So I wrote this MT plugin to ask users questions and check their answers. There is a random number component (so the bot programmers can't just do straight-up text matching) and a language component. If each user of BotBlock modifies the questions---even if only to rephrase them!---then it will be impossible for the bots to keep up. Even if they catch on to some questions, you can always just change them, no reinstallation required.
Writing questions
Instructions for writing questions can be found here or in the doc/ directory of the tarball.
Current version
The current version is 1.2.2, available as a gzipped tar file. Installation instructions are included.
Demo
Any of the entries on my blog will serve to demo this, but I suppose the post announcing BotBlock will be as good a sandbox as any (scroll to the bottom for the comment entry field). Feel free to post a comment there if you like.
Version history
- 1.2.2: Cleaner logfile code; commented out multiple question ("too hard", sigh); made future/past stricter to block random correct answers. (8 Aug 2007)
- 1.2.1: Fixed the "multiple" question to not accept 0 as a valid answer. (16 Dec 2004)
- 1.2: Separated the questions into their own, separate module for editing; added num_to_words and a question that uses it. (16 Dec 2004)
- 1.1: Further simplified the question-writing code; documented how to write questions; added logging capability. (15 Dec 2004)
- 1.0.1: Changed default max files and timeout; fixed BotBlock::block to return an error message if there are no indices available. (12 Dec 2004)
- 1.0: Initial version. (11 Dec 2004)