Unkategorisiert
Was bringt ein verstecktes Formular Feld in einem Kommentar-Spam-Filter?
This post is also available in: English (Englisch)
Ein Honeypot Captcha habe ich 2007 auf Anregung meines damaligen Kollegen Benjamin, der mich auf diesen Blog-Eintrag aufmerksam machte, in unseren Kommentar-Spam-Filter integriert.
Das Prinzip ist ganz einfach: Ein Input-Feld im Formular ergänzen und dieses dann per CSS ausblenden. Nur ein Spam-Bot sollte dumm genug sein, in dieses Feld etwas einzutragen – Menschen, die kein CSS verwenden (z.B. Lynx-Enthusiasten oder Nutzer eines Braille Monitors) werden textlich darauf hingewiesen, dieses Feld besser leer zu lassen. Die Theorie zusammengefasst: ausgeblendetes Feld ausgefüllt = müsste eigentlich Spam sein!
Mal sehen: Ich habe mir drei Formulare mit relativ hohem Kommentar-Spam-Aufkommen angesehen, insgesamt kamen in den letzten drei Monaten 620 Spam-Kommentare zusammen. Bei 80% der Spam-Einträge war das versteckte Feld ausgefüllt, bei 20% blieb es leer.
Wir haben es hier also mit einem klaren Spam-Merkmal zu tun.
Allerdings sollte man sich nicht alleine darauf verlassen: Insgesamt ein echter Beitrag enthielt auch Inhalte im versteckten Feld. Naja … es bleibt eine Spam-Wahrscheinlichkeit nahe 1. Trotzdem: Als alleiniges SPAM-Erkennungsmerkmal reicht das “ausgefüllte versteckte Feld” nicht aus …
Nachtrag: Zwei der Anwendungen basierten auf Standard-Produkten (MediaWiki, phpBB), eine Anwendung war selbst entwickelt und enthielt kein “Standard-Formular”. Bei den Standard-Produkten lag der Anteil der SPAM-Beiträge mit ausgefülltem “hidden”-Eingabe-Feld bei 98%, bzw. 80% – beim Custom-Formular bei knapp 60%.
Ich hätte es eher anderes herum vermutet – dass Standard-Bots nach Standard-Forumularen suchen und dann nur die Standard-Formular-Felder ausfüllen und dass andere Crawler nach beliebigen Formularen suchen und dort einfach alle vorhandenen Felder ausfüllen.