Spam-Schutz durch Honeypots

Durch Webdesignshock.com bin ich heute auf einen sehr interessanten Artikel zum Thema CAPTCHAs und Spam-Schutz gekommen. Im Artikel Honeypot CAPTCHAs vs. Spambots schreibt Michael Clark über ein Verfahren, in dem sich nicht mehr Menschen als solche „ausweisen“ müssen, sondern Bots sich selbst verraten sollen.

Bots mit versteckten Eingabefeldern ködern

Die Idee ist eigentlich recht simpel: Spam-Bots sind gierig und versuchen ihre Inhalte an möglichst vielen Stellen los zu werden. Daher, so die Theorie, werden sie auch jedes sinnvolle Feld befüllen. Dies kann man nutzen, indem man speziell für die Bots ein zusätzliches Feld mit verlockendem Namen anbietet. Da es versteckt ist, wird es von normalen Nutzern nicht ausgefüllt und verrät so den Bot.

Inputs richtig verstecken

Vor dem Nutzer versteckt man das Eingabefeld, die für den Bot nur schwer erkennbar ist. Ein <input type="hidden"> ist verräterisch, ein display: none; in einer externen CSS-Datei hingegen für den Otto-Normal-Bot unüberwindbar. Noch sicherer ist eine absolute Positionierung außerhalb des sichtbaren Bereichs der Seite.

Der richtige Feldname

Ebenfalls wichtig ist es, einen verlockenden Namen zu finden. Clark verwendet auf seiner Seite „Nickname“ und ist damit laut eigener Aussage recht erfolgreich. In den Kommentaren schlägt er außerdem „Business-Mail“ vor. Ich kann mir auch ein „Subject“ sehr gut vorstellen…

Besonders erfolgversprechend ist es sicherlich, ein in dem jeweiligen Website-System übliches Feld zu verwenden. Die Frage ist nur, ob Kommentatoren gern auf Website-URL  (etwas Eigenwerbung) oder E-Mail-Benachrichtigungen verzichten würden.

False Positives

In seinem Artikel spricht der Autor außerdem über „False Positives“, also fälschlich als Spam markierte Einträge. Das überrascht mich ehrlich gesagt sehr: Nutzer ohne Javascript sind ja schon wenige, aber ohne CSS? So erfolgreich ist Lynx doch gar nicht…

Schlussendlich gilt für diese wie für jede andere Art: Man sollte der Sortierung nicht blind vertrauen. Clark scheint vermeintliche Spam-Einträge anfangs direkt gelöscht zu haben. Das ist sicher nicht empfehlenswert. Ein Spam-Flag und nicht-automatisches Veröffentlichen sind hier der sinnvolle Weg.

WordPress-Plugin: Invisible Captcha

Mit Invisible Captcha gibt es auch ein einfach einzubindendes WordPress-Plugin. Da meine momentane Lösung Obstcha von Georg in letzter Zeit zunehmend schwächelt und dieser in absehbarer Zeit wohl kaum die Zeit hat, sich darum zu kümmern, werde ich das wohl auch einmal versuchen…

8 Kommentare

  1. Hallo Sebastian,

    ich verwende Antispam Bee und das Plugin setzt (unter anderem) auch auf diese Methode des versteckten Input-Feldes. Ein Großteil der Bots fällt sogar darauf rein, alle leider nicht. So schwierig ist es dann auch wieder nicht, den Quelltext auf display: none; zu überprüfen :-).

  2. Okay, danke für den Tipp. Hatte von der Methode noch nie gehört.

    Sicher ist es nicht wirklich schwierig, solche CSS-Eigenschaften zu prüfen, aber rentabel ist es sicher nicht. Nimm meine Seite: Hier ist die CSS-Datei in etwa so groß wie die durchschnittliche HTML-Datei. Das halbiert mal eben den Durchsatz, den so ein Bot schaft. Das nimmt niemand auf sich, nur um auch die 0,00000000001 % der Seiten zu erreichen, die CSS-basierte Browserdetection verwenden. Würde ich jedenfalls vermuten.

  3. Da liegst du sicherlich nicht falsch. Dazu muss display:none; allerdings in einer externen CSS-Datei liegen. Ich sehe gerade bei mir, dass das dasplay:none; direkt im input-Feld steckt. Das macht es den Bots natürlich einfacher. Möglicherweise also besser, wenn man das von Hand erledigt.

  4. Was heißt das? Wird mein Plugin jetzt nicht mehr eingesetzt?

    *wein*

    Dann muss ich diese Methode zusätzlich einbauen 🙂

  5. Doch, doch, so schnell bin ich nicht. Noch werkelt hier Obstcha. Aber ich hatte die letzten Tage doch fast jeden Tag einen Spameintrag…

  6. Wichtiger Askpekt, danke. Sollte man nicht vergessen. Da muss man dann wohl noch einen gesonderten Hinweis hinterlassen, dass die Betroffenen das Feld bitte freilassen wollen.

    Und super interessanter Link, vielen dank!

Kommentare sind geschlossen.