Ariën noemde al een methode (dit wordt geloof ik een "honeypot" genoemd). Je kunt ook het omgekeerde doen: voeg met JavaScript een verplicht (onzichtbaar) veld toe waar je op controleert. Bestaat deze niet dan pech. Je verplicht hiermee de gebruiker wel om JavaScript ingeschakeld te hebben maar dat is tegenwoordig niet zo'n onredelijke eis.
Als je dan toch Javascript gebruikt kan je ook gewoon het gehele formulier inladen via AJAX, valt er voor een bot helemaal niets versturen ;-)
?
Onbekende gebruiker
09-11-2015 20:27
Uhm...
Ik denk dat het verbergen van velden een beetje achterhaald is.
Persoonlijk zou ik met AngularJS of jQuery een validatie laten lopen die bepaalde velden checkt.
Ook de php code zou ik laten valideren op velden.
Geen captcha gebruiken is velen maten vriendelijker en hoe meer validatie jij loslaat op bepaald velden, hoe minder bots erdoorheen komen.
Google heeft niet voor niets zijn REcaptcha veranderd ;)
Ik zou de veiligheid op bots meer via PHP laten gaan. Ik denk dat veel botjes niet browser-gestuurd werken, en daarbij dus controles van jQuery/AngularJS voorbij zullen gaan.
Een 'honeypot' lijkt mij de beste methode. Eventuele kan je Google Re-Captcha gebruiken. Deze gebruikt mooie algoritmes om te kijken of het netwerk van de bezoeker betrouwbaar is. Botnets maken dan grote kans om een lastige captcha voor hun kiezen te krijgen.