I normally have two pretty effective methods to stop spammers.
#1. reCAPTCHA. Go to
http://www.google.com/recaptcha and register to get a Public and Private key. Then, in a new tab/window, open up your Forum's Admin Control Panel and go to vBulletin Options -> Human Verification Manager.
Select the 'reCAPTCHA' button and hit save. After doing so, the page will refresh, and you'll see the reCAPTCHA options. Paste the corresponding public/private keys into the fields then select the color of the reCAPTCHA. Then, you're all done.
ONLY DO THIS STEP IF YOUR FORUM USES HTTPS:
However, if you use https:// for your Forums, you'll need to do some template editing. Under the Human Verification Template group, you'll see the template called 'humanverify_recaptcha'.
Replace the contents of it (shown below):
HTML Code:
<fieldset class="fieldset">
<legend>$vbphrase[image_verification]</legend>
<input id="hash" type="hidden" name="${var_prefix}[hash]" value="$humanverify[hash]" />
<script type="text/javascript">
var RecaptchaOptions = {
theme : '$humanverify[theme]'
<if condition="$humanverify['langcode']">,lang : '$humanverify[langcode]'</if>
};
</script>
<div dir="ltr">
<if condition="$show['recaptcha_ssl']">
<script type="text/javascript" src="https://api-secure.recaptcha.net/challenge?k=$humanverify[publickey]">
<else />
<script type="text/javascript" src="http://api.recaptcha.net/challenge?k=$humanverify[publickey]">
</if>
</script>
</div>
<noscript>
<if condition="$show['recaptcha_ssl']">
<iframe src="https://api-secure.recaptcha.net/noscript?k=$humanverify[publickey]" height="300" width="400" frameborder="0"></iframe>
<else />
<iframe src="http://api.recaptcha.net/noscript?k=$humanverify[publickey]" height="300" width="400" frameborder="0"></iframe>
</if>
<br />
<textarea name="recaptcha_challenge_field" rows="3" cols="40">
</textarea>
<input type="hidden" name="recaptcha_response_field" value="manual_challenge" />
</noscript>
</fieldset>
with:
HTML Code:
<fieldset class="fieldset">
<legend>$vbphrase[image_verification]</legend>
<input id="hash" type="hidden" name="${var_prefix}[hash]" value="$humanverify[hash]" />
<script type="text/javascript">
var RecaptchaOptions = {
theme : '$humanverify[theme]'
<if condition="$humanverify['langcode']">,lang : '$humanverify[langcode]'</if>
};
</script>
<div dir="ltr">
<if condition="$show['recaptcha_ssl']">
<script type="text/javascript" src="https://www.google.com/recaptcha/api/challenge?k=$humanverify[publickey]">
<else />
<script type="text/javascript" src="http://api.recaptcha.net/challenge?k=$humanverify[publickey]">
</if>
</script>
</div>
<noscript>
<if condition="$show['recaptcha_ssl']">
<iframe src="https://www.google.com/recaptcha/api/noscript?k=$humanverify[publickey]" height="300" width="400" frameborder="0"></iframe>
<else />
<iframe src="http://api.recaptcha.net/noscript?k=$humanverify[publickey]" height="300" width="400" frameborder="0"></iframe>
</if>
<br />
<textarea name="recaptcha_challenge_field" rows="3" cols="40">
</textarea>
<input type="hidden" name="recaptcha_response_field" value="manual_challenge" />
</noscript>
</fieldset>
#2. An extra registration question effectively stops most bots.
I followed
THIS GUIDE (which is very clear and useful) on how to implement an extra registration question.
Regards,
Mark