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…
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 :-).
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.
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.
Was heißt das? Wird mein Plugin jetzt nicht mehr eingesetzt?
*wein*
Dann muss ich diese Methode zusätzlich einbauen 🙂
Doch, doch, so schnell bin ich nicht. Noch werkelt hier Obstcha. Aber ich hatte die letzten Tage doch fast jeden Tag einen Spameintrag…
Ich möchte darauf hinweisen, dass Honeypots nicht barrierefrei sind! Screenreader, Textbrowser u.ä. haben damit durchaus ihre Probleme, wenn man sie Honeypots richtig einsetzt!
Ich muss hier gleich einen Link loswerden:
Knetfeder: Wie sieht man als Blinder das Internet?
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!