Formular-Spam – das automatische Ausfüllen und Versenden von Formularen auf einer Website – kann enorm stören. Als Betreiber einer Website läuft man dabei stets Gefahr, eine wichtige Mail zwischen den vielen Spam-Mails zu übersehen.

Meistens wird dieser Spam durch Skripte ("Bots") ausgelöst, die das Web in der Hoffnung auf Formulare durchsuchen, bei denen sie einen Link hinterlassen können. Zweifelhafte SEO-Anbieter versuchen damit Link-Aufbau für ihre Kunden zu betreiben.

Herkömmliche Methoden mit Captcha

Herkömmliche Methoden zur Spam-Bekämpfung verwenden häufig einen sogenannten "Captcha" (Completely Automated Public Turing test to tell Computers and Humans Apart): Der Benutzer muss dabei eine verschwommene dargestellte Zeichenkette aus einer Grafik in ein Feld auslesen oder eine mathematische Aufgabe lösen.

Häufig verwendete Captcha-Implementierungen für Drupal sind das Modul "CAPTCHA", Googles "reCAPTCHA" sowie Mollom von Acquia.

Diese Captcha-basierten Spam-Abwehrmethoden haben jedoch Nachteile:

  • Der Benutzer wird gezwungen, etwas einzugeben, was mit seinem Anliegen nichts zu tun hat.
  • infolge einer immer besseren Texterkennung von Maschinen müssen diese Captchas mitunter dermaßen verzerrt dargestellt werden, dass sie für Menschen kaum noch entzifferbar sind.
  • Die eingebetteten Captchas fügen sich gestalterisch in aller Regel nicht besonders gut in das Design der Website ein.

Kurzum: Captchas nerven.

Benutzerfreundliche Spam-Abwehr mit Honeypot

Wie so oft setzen innovative Ideen keine neuen Technologien voraus. So auch in diesem Fall: Eine alternative Methode, bei der der Benutzer nichts unternehmen muss, besteht darin, Honigtöpfe für die Spam-Bots anzubieten. Sobald Bots davon "naschen", verraten sie sich und ihre Formular-Postings lassen sich zuverlässig herausfiltern.

Diese Honigtöpfe bestehen aus einem zusätzlichen und verborgenen Formularfeld, z.B. "Homepage", welches sich zwar im Quelltext befindet, das jedoch für normale Benutzer auf der Website nicht dargestellt wird.

Das Drupal-Modul "Honeypot" implementiert diese Methode und bietet zusätzlich noch die Möglichkeit, sämtliche Postings herauszufiltern, bei denen zwischen Aufruf der Seite und Abschicken des Formulars eine bestimmte Zeitdauer unterschritten wird. Menschen benötigen Zeit zum Ausfüllen eines Formulars. Maschinen nicht. Die Zeitschwelle ist im Backend konfigurierbar. Zusätzlich lässt sich diese Funktion für bestimmte Rollen unterdrücken.

Außerdem lässt sich im Backend einstellen, welche Formulare die Honeypot-Methode verwenden sollen und es lässt sich die Bezeichnung des Honeypot-Formularfelds bestimmen. Für Spammer wäre es zu einfach, wenn das Honeypot-Feld auf jeder Website gleich heißen würde.

Vor menschlichen Spammern können beide Methoden – Honeypot und zeitbasierte Filterung – selbstverständlich nicht schützen.

Honeypot für Drupal 8

Besonders erfreulich ist, dass es das Drupal Modul Honeypot bereits vor Erscheinen von Drupal 8 in einer stabilen Version für die neue Hauptversion gibt!