If you know how to do it, the best and 100% method is to rename register.php to another filename (eg myregistration.php). Then you need to change 4 files (if I remember well), and update some links in the templates (eg the template that sends email confirmation, has a link to register.php). Difficult way, as it needs some knowledge, and also boring as you have to do these changes with any vB update. But works 100% for bots. Of course does not works when the spammers are humans.
An alternate way that I found very strong to restrict bots from registration is to use questions as antispam way. But of course not using just one question. At least 10 and all of them to have a long user input. eg Which is the 2nd month (March, April, May, February). If you're using (like in the example) numbers, avoid to set the correct answer on the same position. eg setting (March, February, May, April) is not a good way.
In my PHP scripts I'm using a jQuery plugin which works 100%, but it's difficult to integrade it someone to vB. It's a slider, where the user must click and drop it to the end to be able to activate the submit button.
Last trick is (I think that there is an Article by Calorie for it), to set a minimum time limit to post the form. Bots needs seconds to fill a form, while humans needs minutes.
Without any intention to drop your dreams, keep in mind that not all the spam post are from bots. There are humans who are doing it too, and get paid for it. I had online chat in my site, which has geoip location so I was able to "catch" in action some of them. Actually with one of them we started chating. His name is Alexei, comes from a small village in Ukraine, married with 3 kids. He found this way to increase his income. Profit? 20 cents per post.
Chris
|