RubyFlow The Ruby and Rails community linklog

Logic based CAPTCHA for Rails

BrainBuster is a logic based CAPTCHA for use in Rails applications. Rather than give users a complex image to read, they get asked a question instead.

Comments

The prob with captcha is that they only work if someone isn’t specifically targeting your site.

It wouldn’t be hard to build a map of BrainBuster question to response but running a local copy of it.

“but running a local copy of it.”

by running a local copy of it.

The questions are dynamic though, so you’d have to do a bit of work in dealing with the dynamic parts. But, yeah, it definitely wouldn’t be impossible, and probably quite easy to get a success rate that makes it worth it (if what you’re trying to beat is worth beating of course ;-)).

Hi, I’m the author of BrainBuster =).

I’m willing to bet 99% of sites are way too small to ever get enough attention for a spammer to script the answers. Yes its possible, but if you are at that scale you can patch brain buster to do true dynamically generated q&a’s and be done with it.

brain buster is a nice concept but it’s not easy to plugin.

how do you get brainbuster to cooperate with an action that is used as both a ‘get’ to render the registration and a ‘post’ for submitting registration? in this situation the same action has to be used in the two before filters.

the captcha input field disappears when answered correctly. why? on registration pages it would seem that although the captcha is answered correctly other mandatory fields may not be. so on the next render you would still want the input field available.

there is an error i keep seeing “undefined method `times’ for 4/3:Rational” when answering some questions incorrectly. i believe this happens for questions expecting a numerical response.

I wrote a gem heavily inspired by brain_buster, Rails 3 support out of the box: http://github.com/kiskolabs/humanizer

Post a comment

You can use basic HTML markup (e.g. <a>) or Markdown.

As you are not logged in, you will be
directed via GitHub to signup or sign in