Okay, where to begin?
Firstly, lots of people will never solve this correctly. Sorry, it's a fact. People just aren't very good at solving things. For instance "Sarah ran through the grassy fields" is proper english, but so is "the Sarah ran through grassy fields" depending on what a "Sarah" is. Clearly the second is non-nonsensical but not everyone is a native English speaker either, or paying enough attention to what they are doing to get it right.
Secondly, you have one of the highest probabilities of brute force solving I've ever seen in a CAPTCHA - 1/720 with six words and 1/5040 with seven words. That's less than a normal CAPTCHA of 4 digit characters. The numbers listed actually makes an assumption that each word is unique - which in several of your examples they were not ("the" is used twice in the sentences more than once). In that case your probability of guessing the correct answer skyrockets to 1/120-1/720). That's worse than a three digit CAPTCHA.
Third, to actually break this would require only a split second with all possible combinations against a grammar checker since there are so few combinations.
Fourthly, I can refresh until I get an old (known/solved) CAPTCHA.
Lastly, since you have to build each sentence you can only have a limited number of sentence structures that are short enough to be easily solvable, making it incredibly easy to build a lookup table of solved CAPTCHAs.
Sorry, this CAPTCHA has serious security implications. I'd never implement this as-is.
- RSnake
Gotta love it.
http://ha.ckers.org
Edited 1 time(s). Last edit at 07/12/2007 05:59PM by rsnake.