Honig für Kommentar Spammer
Janek hat mich auf Google+ wieder auf etwas gebracht, was ich schon lange mal testen und implementieren wollte: Einen Honeypot für den Kommentarbereich.
Ein Honeypot (Honigtopf) ist eine ziemlich einfache Methode, um Spambots zu erkennen, die automatisiert Kommentare abgeben wollen. Obwohl diese Methode schon mindestens seit 5 Jahren im Einsatz und beschrieben ist, scheint sie laut meinen Tests immer noch sehr effektiv zu sein.
Funktionsweise
Der Honig für die Bots wird ausgelegt, indem man im Kommentar Formular eine Eingabezeile hinterlegt, die per CSS versteckt wird. Echte Besucher des Blogs, die kommentieren wollen, sehen diese Eingabe also nicht und lassen sie folgerichtig leer. Kommentar Bots haben aber die Eigenschaft, dass sie alle Eingabefelder zu füllen versuchen, um sicher zu stellen, dass der Kommentar nicht durch ein benötigtes aber leeres Feld abgewiesen wird. Eine weitere Eigenschaft ist, dass Bots nur das reine HTML auslesen und somit nicht erkennen können, dass ein Feld gar nicht sichtbar ist (wenn man dies über eine externe CSS Datei macht).
Bots müssen Kommentarfelder sogar analysieren, damit sicher gestellt ist, dass die zu bewerbende URL in der URL Eingabe ist, der Text im Kommentarfeld usw. Somit sollte die Honeypot Eingabe einen sinnvollen Namen und ein Label haben. Mein Honigtopf fragt im Blog scheinbar die Telefonnummer ab und in der Tat füllen die Bots diese Eingabe mit Zahlenkombinationen.
Im Einsatz
Ich habe den Honeypot in mein CommentSpice Plugin eingebaut und zeichne die Resultate im Moment auf. Die Testergebnisse sind äußerst zufrieden stellend: Die Datenbank füllt sich mit Kommentaren, die von CommentSpice als Bot erkannt wurden. Die Fehleranfälligkeit (False Positives) ist technisch bedingt extrem gering, eigentlich kann der Honigtopf nur in erzwungenen Situationen falsch anschlagen.
Der Vorteil des Honigtopfes (im Vergleich zum Bayes z.B.) ist also eine sehr gute Trefferquote ohne dabei die Datenbank benutzen und unter Last legen zu müssen (wenn man das Logging ausschaltet). Ich lasse den Kommentarbereich nun also zuerst von CommentSpice überprüfen, danach vom Bayes und ganz zum Schluss vom normalen Antispam Plugin (das bisher schon nichts zu tun hatte).
Resultat: Im Bayes Papierkorb ist jetzt schon länger nichts mehr zu finden! Die Spam Kommentare, die sich dort bisher sammelten, wurden also bereits vom Honeypot abgefangen. Im Spamlog kann man das auch schön nachvollziehen.