Anti-Spam mit einem Honeypot in Contact Form 7 einrichten

Hattest du auch schon einmal das Problem, dass du zu viele Spam-Anfragen über dein WordPress Contact Form 7 Formular erhalten hast?

Mit diesem Problem bist du nicht alleine. Viele WordPress-Benutzer, die Contact Form 7 verwenden, klagen über ein erhöhtes Spam-Aufkommen.

Das liegt aber nicht an Contact Form 7.

Die meisten Kontaktformular-Plugins können nicht zwischen Spam-Bot oder Interessent unterscheiden.

Dagegen hilft eine sehr einfache, aber wirkungsvolle Technik: Der Honeypot.

Möchtest du nachvollziehen wie viele Kontaktanfragen du von deinen Besuchern erhältst? Probiere mein CF7 Event Tracker Plugin für WordPress aus. Damit kannst du intelligente Google Analytics Event-Tracking Algorithmen für deine Contact Form 7 Formulare erstellen.

 
Was ist ein Honeypot?

Was ist ein Honeypot?

Mit Honig lockt man Bienen an.

Wir wollen natürlich keine Bienen in die Falle locken, sondern Spammer und Hacker.

Durch den Honeypot geben wir dem Bot etwas, was er möchte. Das können auf einem Server Daten sein, die der Hacker versucht zu ergattern.

Sobald jemand (oder etwas) mit einem Honeypot interagiert, ist es klar, dass es sich um einen Hacker oder Bot handeln muss. Denn reale Interessenten sehen ihn erst gar nicht.

Auf Servern wird häufig ein Verzeichnis angelegt, dass z.B. Zugänge oder Adressen benannt wird. Sollte sich ein Hacker in dieses Verzeichnis verirren, kann man seine IP-Adresse sperren.

Im Fall eines Kontakt-Formulars sind das Felder, die der Spam-Bot ausfüllen möchte.

Wie funktioniert ein Honeypot in einem Kontakt-Formular?

Die meisten Spam-Bots sind schlicht gestrickt. Sie versuchen die Inhalts-Elemente eines Kontaktformulars mit Linkbaits, Scam oder anderen unnützen Informationen zu füllen.

Ein Bot kann nicht zwischen einem Formular-Feld unterscheiden, dass ausgefüllt werden darf und eines, dass leer bleiben muss. Dieses Verhalten kann man sich bei einem Formular zu nutze machen.

Wenn in deinem Kontakt-Formular ein Feld platziert wird, dass leer bleiben muss, wird es mit einer sehr hohen Wahrscheinlichkeit von einem Bot ausgefüllt. Das Feld kannst du durch JavaScript oder ein PHP-Skript auf Inhalt überprüfen. Es kommt darauf an, wie dein Kontakt-Formular aufgebaut ist.

Der Honeypot im Kontakt-Formular kann unsichtbar bleiben, damit Interessenten diesen nicht versehentlich ausfüllen, oder sich davon irritieren lassen.

Wie integriere ich einen Honeypot in Contact Form 7?

Für Contact Form 7 gibt es ein sehr hilfreiches Plugin, dass mich bisher nie enttäuscht hat.

Das Plugin Contact Form 7 Honeypot beschreibt schon in seinem Namen was es macht. Mit ihm kann ein einfaches Honeypot-Feld in ein Contact Form 7 Formular eingefügt werden.

Mit dem Shortcode [honeypot honeypot_name] kann das Formular einfach erweitert werden. Füge diesen Shortcode direkt über deinen "Absenden"-Button ein und dein Formular überprüft automatisch den meisten Spam.

Ich empfehle jedoch den Namen "honeypot" nicht so zu verwenden, wie der Hersteller es Beschreibt. Intelligente Spam-Bots könnten den Honeypot durch den Namen durchschauen.

Verwende dazu lieber generische Wörter. Mein Passwort Generator kann dir dabei helfen. Einfach "Leicht merkbar" und Groß-/Kleinbuchstaben aktivieren.

Google reCaptcha in Contact Form 7

Warum sollte ich nicht einfach das Google reCaptcha von CF7 verwenden?

Durch das Google reCaptcha werden Daten des Benutzers an den Google-Server gesendet. Dazu muss der Benutzer nicht einmal auf der Kontakt-Seite sein.

Wenn deine Webseite DSGVO-Konform sein soll, muss der Benutzer vor dem Einbinden des reCaptchas mit der Übertragung der Daten an Google einverstanden sein. Das beachtet Contact Form 7 leider nicht.

Das bedeutet, dass du das Kontaktformular erst nach dem Klick auf einen "Akzeptieren"-Button ausgeben lassen darfst.

Zudem erscheint in der V3 des reCaptchas in der rechten unteren Ecke deiner Webseite ein Banner, um den Kunden darauf hinzuweisen, dass diese Seite den Google-Code verwendet.

Das ist auf der mobilen Webseite für den Besucher störend, da es die Sicht auf den Text behindert.

Wenn du aber dennoch lieber das Google reCaptcha verwenden möchtest, empfehle ich dir eine 2-Klick-Lösung für das Kontakt-Formular zu verwenden.

In dem Artikel YouTube 2-Klick-Lösung erkläre ich, wie du eine 2-Klick-Lösung erstellst. Wenn du ein wenig Know-How in JavaScript und HTML besitzt, kannst du den Code relativ einfach bearbeiten.

Warum verwendet Contact Form 7 keinen Honeypot?

Das ist eine Frage, die ich mir häufig stelle.

Statt einem Honeypot wird auf das reCaptcha gesetzt. Das ist nicht nur bei Contact Form 7 so, sondern bei vielen anderen.

Die Version 3 des reCaptchas kommt ohne Benutzer-Eingabe aus. Die Klicks auf die Bildchen fallen weg. Aber dennoch wird ein störendes Element am rechten unteren Rand der Webseite ausgegeben.

Das möchten natürlich viele nicht. Und die Frage nach DSGVO-Konformität hängt auch noch in der Schwebe, da ungefragt Daten an den Google-Server gesendet werden.

Wahrscheinlich ist die Frage nach dem Datenschutz außerhalb der EU einfach noch irrelevant. Sehr viele EU-Fremde Anbieter setzen auf Google-Algorithmen und Programme, ohne an europäische Kunden zu denken.

Gerade deutsche Webseiten-Betreiber müssen stark darauf achten, dass keine Daten an andere Webseiten und Server gesendet werden.

Durch die Integration eines Honeypots wäre dieses Problem vom Tisch. Denn eine Daten-Weitergabe an Dritte gibt es nicht.

Honeypot sendet weiter Spam-Mails

Warum sendet mein Kontakt-Formular mit Honeypot weiterhin Spam?

Natürlich gibt es immer wieder mal Fälle, in denen ein Honeypot nicht funktioniert. Häufig ist das Einer von 2 Fällen.

Im ersten Fall ist der Spam-Bot sehr intelligent und versteht, dass eines der Felder ein Honeypot ist, wenn eine Kontakt-Anfrage fehlschlägt.

Er versucht danach ein Feld nach dem anderen leer zu lassen und testet somit, welches der Felder der Honeypot ist. Aber hier reden wir von einem wirklich intelligenten Bot.

Den zweiten Fall kann man einfach nicht verhindern: Wenn eine Person manuell Spam-Anfragen versendet.

Da die Person, die den Spam einträgt den Honeypot über seinen Browser ebenfalls nicht sieht, hilft er auch recht wenig. Eine Person die Spam versendet wird von jedem Programm als Real bewertet. Da hilft auch kein reCaptcha.

Man könnte als Webseiten-Betreiber natürlich auf Links im Text-Körper prüfen, aber dadurch könnte z.B. ein richtiger Interessent keine Frage zu seiner eigenen Webseite stellen.

Da solche Spam-Mails relativ selten vorkommen, empfehle ich diese im Postfach einfach auszusortieren.

Was tun, wenn ich kein WordPress verwende?

Für andere Content Management Systeme gibt es ebenfalls Extensions oder Plugins, die einen Honeypot in Kontaktformulare einfügen kann. Bei allen CMS-Systemen gibt es ein Plugin-Verzeichnis, in dem du nach einer geeigneten Erweiterung suchen kannst.

Für alle die kein CMS verwenden, muss ein Honeypot manuell für das Kontakt-Formular programmiert werden. Der Algorithmus lässt sich einfach mit JavaScript umsetzen.

Ich habe dir bereits eine Vorlage für eine Honeypot-Überprüfung auf Codepen erstellt. Wahrscheinlich musst du das Feld noch etwas für dein eigenes Formular anpassen. Solltest du nicht zurecht kommen, empfehle ich dir erst einmal eine Programmiersprache für Webseiten zu lernen.

See the Pen Ein einfacher Honeypot für Kontaktformulare by Codepalm (@Codepalm) on CodePen.

 

Hast du selbst schon Erfahrungen mit einem Honeypot in deinem Kontaktformular gemacht? Teile dein Wissen in den Kommentaren.

 

Codepalm
Honeypot in Contact Form 7 integrieren