J
j-l-n
Guest
Es gibt zwei einfache, aber wirkungsvolle Methoden, automatisierte Bots in einem Formular zu blockieren - und das, ohne auf für den Nutzer Mehraufwand bedeutende Techniken wie Captchas zu setzen:
1. Man fügt dem Formular ein neues Textfeld hinzu mit einem Namen wie "message", "username" o.ä., was deswegen von einem Bot garantiert ausgefüllt wird.
Nun macht man dieses per CSS für einen normalen Menschen unsichtbar:
Vorteil gegenüber Alternativen wie <input type="hidden"> ist, dass Bots nicht erkennen, dass das Feld nicht ausgefüllt werden soll.
Man braucht nun serverseitig nur noch prüfen, ob das Feld leer und damit das Formular höchstwahrscheinlich von einem Menschen abgeschickt worden ist.
2. Trick: Es wird ein Formularfeld mit der Zeit der Erzeugung mitgeschickt.
Auf dem Server prüft man dann mittels
, wie schnell das Formular abgeschickt wurde. Kommen hier Werte von wenigen Sekunden heraus, kann man sich relativ sicher sein, dass nur ein automatisiertes Programm das Formular so schnell ausfüllen kann.
1. Man fügt dem Formular ein neues Textfeld hinzu mit einem Namen wie "message", "username" o.ä., was deswegen von einem Bot garantiert ausgefüllt wird.
HTML:
<input type="text" name="message" id="bot-protection">
Code:
#bot-protection{
opacity: 0;
}
Man braucht nun serverseitig nur noch prüfen, ob das Feld leer und damit das Formular höchstwahrscheinlich von einem Menschen abgeschickt worden ist.
2. Trick: Es wird ein Formularfeld mit der Zeit der Erzeugung mitgeschickt.
PHP:
<input type="hidden" name="token" value="<?php echo time(); ?>">
PHP:
$token = $_POST['token'];
$difference = time() - $token;