Defeating spam with a question

I just upgraded Google Community vBulletin. I thought they had better ways to fight spam, but not so: they use image verification, no matter how complex it is. The more weird-looking the images get, the harder it is for real humans to read them. Sometimes, computers can even read images (using OCR) better than humans can. So that’s not the way to go. Computers can crack images better than humans can, so we really need to focus on what computers cannot do. I think the next logical step is to ask a question, like a test you might have taken at school.
It’s simple, easy to implement, and very effective at defeating bots. I think it should be at least as effective as image verification.

So I’ve posed a question on the vB forums: can we get better antispam techniques in a future version of vBulletin?

Specifically, I want to ask my users a question to ensure they are human and somewhat intelligent. Some questions would be:

What’s 3 x 7?
What color is the “G” in “Google”?
What color signifies “Go” in a traffic signal?
Christmas is celebrated on which day of December?

With the answers being:

21
blue
green
25

The registration system would show a random question.

I’m sure that the simple “enter this random sequence of characters from an image” test will be defeated by better OCR software. It’s just a matter of time.

You could argue that sophisticated AI will break the other scheme I’ve outlined, but that’s way off in the future, as long as we can specify our own questions.

The last remaining obvious approach to spam blocking is Bayesian filtering. This is used by Akismet, Gmail, and so on. I think it could be a good addition to my above-outlined approach.

4 Responses to “Defeating spam with a question”

  1. Henry Yuen says:

    The problem is when people don’t know the answer to the questions. You never know. Some people don’t know how to add, some people don’t know how the date of Christmas, etc. I mean, it’s a small portion, but something to consider.

  2. Elliot Lee says:

    The people who don’t know how to add are the ones I want to keep out of my membership list anyway :)

    Also, if they don’t know how to add, how can I expect them to read some obfuscated characters in an image?

  3. bwdow says:

    Very nice solution. I have write a module such like this.

  4. News Hardware says:

    Great tip. I’m having problems with spam. He registers and open threads with spam :X

Leave a Reply