Ihrem Anspruch nach sind Captchas für Menschen entschlüsselbar; SPAM-Bots müssen dagegen weinend aufgeben und gesenkten Hauptes von dannen ziehen. Soweit die Theorie.
Leider haben Captchas eine viel zu hohe false positive-Rate, d. h. zu viele echte Nutzer scheitern an ihnen, und damit sind Captchas für ihren Job schlicht ungeeignet. Außerdem besitzen sie ein enormes Frustrationspotenzial und sind nicht barrierefrei. Deshalb sind sie für eine professionelle Website nicht als lästig, sondern viel eher als geschäftsschädigend einzustufen.
Es geht ohne. Mit wenigen einfachen Maßnahmen bekommt man ähnliche Trefferquoten wie mit Captchas, allerdings ohne die Benutzer zu belästigen. Und das geht beispielsweisezwar so: Wir benötigen Kartoffelsalat, Honig und eine Uhr.
Kartoffelsalat
Bots lesen den Quelltext von Webseiten. Wenn ein Eingabefeld im HTML “E-Mail” heißt, dann schreiben sie eine E-Mail-Adresse hinein. Das kann man ausnutzen. Der normale Nutzer sieht diese Bezeichnungen nicht. Also nennen wir das E-Mail-Feld anders, z. B. “Schlangengurke”. Das Feld für den Nachnamen nennen wir “Kartoffelsalat” u. s. w.. Damit ist es für einen SPAM-Bot schon kaum noch lösbar, sinnvolle Werte in die richtigen Felder zu schreiben. Ob z. B. in ein E-Mail-Feld Freitext geschrieben wurde, lässt sich aber leicht per Skript prüfen. Unplausible Bot-Ergüsse werfen wir weg.
Honigtöpfe
Wir verstecken ein Eingabefeld per Stylesheet, sodass der normale Nutzer es weder sieht noch ausfüllen kann. Dieses Feld nennen wir aber im HTML-Quellcode “E-Mail”, und dort steht es, für den Bot gut sichtbar, zwischen dem Kartoffelsalat und der Schlangengurke. So etwas nennt man einen “Honigtopf“. Sobald der Bot das Feld ausfüllt, ist er entlarvt und wir schicken seine Eingaben ins digitale Nirwana.
Digitaluhren
Wie lange dauert es, ein Formular auszufüllen? Bis die ganzen Feldbezeichnungen gelesen und verstanden, die Eingabefelder eingetippt sind, brauchen menschliche Nutzer meist eine ganze Reihe von Sekunden, je nach Umfang des Formulars vielleicht auch Minuten. Einem Bot dauert das zu lange, der muss ja noch ein paar Zehntausend weitere Formulare ausfüllen vor dem Feierabend. Das nutzen wir aus. Wir gucken beim Aufruf der Seite auf die digitale Uhr und zählen. Wird ein mehrseitiges Formular innerhalb weniger Sekunden ausgefüllt und abgeschickt, dann können wir getrost davon ausgehen, dass wir es mit einem Bot zu tun haben und die Eingaben verwerfen.
Funktioniert das?
Wir betreiben das oben Beschriebene seit mehreren Jahren erfolgreich auf eigenen Sites und in Kundenprojekten. Dazu mussten wir die aufgeführten Konzepte nicht einmal selbst ausprogrammieren. Es gibt fertige Module, z. B. die typo3-Extension Spamshield oder das WordPress-Plugin Antispam Bee. Die haben noch ein paar weitere Tricks drauf, die man aber normalerweise nicht unbedingt braucht. Für andere CMS gibt es entsprechende Lösungen.
Fazit
Spiegel online rechnet vor, dass weltweit jeden Tag siebzehn Mannjahre dafür verschwendet werden, Captchas auf Internetseiten zu entschlüsseln. Das ist ziemlich heftig. Captchas sind kein notwendiges Übel. Sie sind übel, soweit korrekt, aber sie sind nicht notwendig. Sie sind, wie Matt Dunn es formuliert, “the Anti-User Experience“, und haben angesichts besserer Alternativen auf professionell erstellten Websites keinerlei Existenzberechtigung.
Nebenbei: Viele Bots lösen die Rätsel gängiger Captcha-Software genauso gut wie der normale Durchschnittsnutzer. Wenn das nicht ausreicht, kann man für ca. einen Dollar pro tausend gelöste Captchas einen menschlichen Knobler engagieren.
