At least one spamming engine (XRumer) can handle Javascript. I find denying access to known spammers using blacklists is fairly effective, in two flavours:
- check IP against a maintained blacklist such as Project Honey Pot, and simply don't offer spammers a form to fill in. (Method still available on the
good old Wiki)
- when spam does come up, check the IP on
Project Honey Pot and if it looks worth the effort, use their link to domaintools.com to follow up on the provider. If it's a large one e.g. some Chinese province, or just a plain nuisance like OVH, work out the CIDR number for the relevant address range and deny access to the IP range via your .htaccess file (e.g. "Deny from 27.148.0.0/14" dishes out "403" notices to 262,144 Chinese IPs that have no legitimate business on a Nottingham driving instructor's site). There's a handy chart at
http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing.
But overall, I think there are better things to do with your time than get too involved in trying to devise the ultimate anti-spam scheme. The negative energy it generates outweighs any successes. Beyond keeping the spam down to manageable levels, it's better to focus on ways to improve your site for the benefit of genuine visitors, in my opinion.
:) KP