Formular-Spam ohne Captcha verhindern

Automatisch befüllte Formulare, Inhalte ohne (sinnvollen) Bezug zur Website oder womöglich Herabstufung durch Suchmaschinen sind ein  wahrer Graus.

Das Thema der automatisiert befüllten Formulare fand sich im Gästebuch des Volleyballvereins Grimma eV. Anfangs einmal am Tag (meist gegen 22:00 fünf gleichzeitige Einträge), später in unregelmäßigen Abständen mehrere Einträge täglich. Das genannte Formular sollte allerdings weiterhin ohne Captcha auskommen.

Irgendwo hatte ich gelesen, dass Webcrawler bei solchen Aktionen ALLE Eingabefelder befüllen, wodurch das Erkennen eines automatisierten Befüllens einfach umzusetzen wäre.

Somit zur Umsetzung: Das Formular wird um ein weiteres Input-Element ergänzt, z.B.:

<form action="" method="post>
  <!-- bisherige Eingabefelder -->
  <input type="text" name="myCaptcha" value="" style="display:none;">
</form>

Beim Absenden des Formulars könnte dies nun bereits Clientseitig per Javascript geprüft werden, was bei Webcrawlern allerdings wenig Aussicht auf Erfolg hätte, da JS nicht zur Ausführung käme. Somit muss die Prüfung Serverseitig erfolgen, z.B.:

<?php
# on form submit per POST:
if (!empty($_POST['myCaptcha'])) {
  # prevent positive actions
  $error = true;
  # don't forget input-validation!
  # send email to webmaster here ..
  mail('webmaster@mySi.te','SPAM','possible spam on form: ' . $_POST['myCaptcha']);
  # .. or do whatever you want
}
?>

Es wird lediglich geprüft, ob myCaptcha einen Wert besitzt. Wenn ja, wird im obigen Beispiel eine eMail zur Kenntnisname versendet. Funktioniert recht zuverlässig.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.