I've read that one can deter bots by using JS to create a checkbox in a form which must be set (i.e. http://uxmovement.com/forms/captchas-vs-spambots-why-the-checkbox-captcha-wins/). Is this strategy effective? Does the user need to physically check the box, or can client side JS be used to check it as well?
Most spam bots are created in JavaScript or Flash scripts which are embedded into web pages for distribution. While not all JavaScript is used to create spam bots, most bots do require it in order to function properly.
The reason why ReCAPTCHA is a prevalent tool in online submission forms is to prevent spam and abuse from entering the site.
The article seems fishy to me. The checkbox captcha seems like a decent defense against spam bots that blindly fill out forms, knowing nothing about the website they happen to be on, however if someone is writing a bot that has any sort of insight into your page, the benefits end there.
In the end, all that matters is the HTTP post. If the POST can be verified by the server, it doesn't really matter how the POST was created or what script may have run on the client. If the server is looking for a POST value called NotABot
which has a value equal to 1
, a spam bot can simply include this value in its own POST, as the server doesn't know if a checkbox was created through client-side script.. If the value must be equal to a random value provided in the initial HTML, the spambot can scrape that value as well. If the value must match a value provided on an image, then you've basically created a CAPTCHA.
In the end it's a cost/benefit analysis that depends on your risk tolerance of spam versus your desire for usability. Running a smaller website, perhaps every post can be moderated by a human before it is allowed. Perhaps you won't get enough spam to warrant a decrease in usability. If you're running a huge site used by millions, perhaps more aggressive measures to ward off bots are necessary. It's really your call to make.
Your best bet for an unobtrusive approach is obfuscation. That is, assuming on the off chance an evil spamming company hires someone to figure out how to write a bot for your site (which 99% of the time won't happen, unless you serve millions of users), you need to make it as difficult and as much a waste of time as possible to understand what's going on under the hood of your site.
I used to have bots in the guest comments of my site so I decided to go overboard. (Javascript is required on my site. The very small percentage of people who have it disabled are usualy bots or web developers)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With