Kontakt

michael trenkler eBuisness Solutions
Humboldtstraße 1
79098 Freiburg

Email info@mtcd.de
Telefon+49 761 453 89 72  
Mobil+49 151 234 34 080

Erhöhen Sie die Usability und Conversion-Rate Ihrer Webseite durch konsequente Vermeidung von Captchas

Kaum etwas geht mir derzeit so auf die Nerven wie das Entziffern unleserlicher Zeichenfolgen. Fast auf jeder Seite werde ich dazu gezwungen, ein für meine Anfrage/ meine Bestellung/ meinen Beitrag absolut unnötiges Eingabe-Feld auszufüllen. Je schwerer der generierte Code auf diesen Bildchen zu entziffern ist, desto mehr schwindet meine Motivation, dem Betreiber der Website meine Daten zu schicken oder an einer Diskussion teilzunehmen.Geht es Ihnen auch so?

Und haben Sie trotzdem diese Barriere in Ihren Formularen eingebaut? Wieso tun Sie das?

Das Problem

Ich weiss schon. Sie erhalten sonst Unmengen an SPAM-Mails, Ihr Forum oder Service-Portal läuft mit unsinnigen "Beiträgen" voll, Sie befürchten Schadcode in Ihrer Seite. Es gibt eine Menge Argumente, die den Einsatz von Captchas rechtfertigen sollen.

Aber führen Sie sich folgendes vor Augen:
Der Einsatz von Captchas verlagert Ihr Problem auf die Schultern Ihrer Kunden/ Interessenten

Da hagelt es schon eine Reihe an Gegenargumenten:

  • "Aber ich kriege täglich 2.000 SPAM-Mails in mein Postfach, ich brauche Stunden, um die auszusortieren"
  • "Mein Forum läuft über mit SPAM"
  • "Ohne Captchas haben wir jede Menge potentiellen Schadcode in unserem Forum"
  • "Die Datenbank läuft ansonsten voll"

Alles richtig. Und dennoch bleibt das Problem bestehen.

Captchas stellen Sie vor weitere Probleme: Die Scripte und Robots werden immer besser im Erkennen von Text, auch wenn dieser bis zur Unkenntlichkeit zerstückelt wurde. Es gibt zwar eine Reihe an mehr oder minder sinnvollen Alternativen (siehe weiter unten), aber hier stellt sich dasselbe Problem. Es ist eine Frage der Zeit, bis Sie eine neue Methode brauchen, um Menschen von Computern zu unterscheiden.

Ein Gedanke am Rande: Der Unterschied zwischen einem Mensch und einem Computer besteht also darin, ob eine unkenntliche Ziffernfolge gelesen werden kann oder nicht? Da steckt der Fehler doch schon im Ansatz..

Captchas stellen vor allem Ihre Interessenten und Kunden vor Probleme. Der Spam-Bot schafft ein paar Tausend Versuche in der Sekunde. Ihr Besucher nicht.

 

Die Alternativen

Nun gut. Captchas sind also kein geeignetes Mittel, um oben genannten Problemen Herr zu werden. Wenden wir uns also möglichen Alternativen zu.

 

"Intelligente Formulare" - Don't make me think!

Das Problem besteht häufig darin, dass Scripte einfach alle Felder in einem Formular ausfüllen und dabei so schlau sind, zu entscheiden, welche Eingaben in welchem Feld erwartet werden.

Wir unterscheiden hier zwischen einfachen Eingabefeldern für Text und solche, die eine bestimmte Eingabe erfordern.

Einfache Eingabefelder:

  • Name
  • Vorname
  • Firma
  • Adresse
  • etc.

Eingabefelder für Texte in einem bestimmten Format:

  • Hausnummer
  • Postleitzahl
  • Geburtsdatum
  • Email-Adresse

Diese einfache Unterscheidung wird dann effektiv, wenn wir vor dem Abschicken des Formulars überprüfen, ob die Werte dem entsprechen, was wir erwarten. Der Name beispielsweise sollte nur aus Buchstaben bestehen, die Hausnummer nur aus Zahlen, die Emailadresse sollte das für Emailadressen übliche Format haben.

Überprüft das Formular konsequent alle Eingaben auf Ihre Sinnhaftigkeit, sind wir schon einen Teil weiter:

  • Ein Name sollte mindestens 2 Zeichen haben, und darf neben ein paar Sonderzeichen wie Umlauten, Leerzeichen und von mir aus einem Hochkomma keine weiteren Zeichen beinhalten. Ein @-Zeichen sowie Zahlen sind hier fehl am Platz.
  • Eine Hausnummer kann nur einen alphanummerischen Wert annehmen, und das zwischen einer ein- und maximal 5stelligen Zahl. Weitere Angaben würde ich über ein zusätzliches Feld "Adress-Zusatz" abfangen.
  • Ein Geburtsdatum hat zwangsläufig ein Format wie xx.xx.xxxx. Dreistellige Ziffern beim Geburtsmonat sind ebenso unsinnig wie eine fünfstellige Jahreszahl.

Fazit:
Definieren Sie, welche Werte Ihre Felder annehmen dürfen. Übertreiben Sie es damit nicht und bleiben Sie auf der sicheren Seite: Ständig angeblich nicht zulässige Zeichen nerven beim Ausfüllen eines Formulars genauso sehr wie Captchas!

Einen Schritt weiter:
Auch bei Überprüfung der zulässigen Zeichen schaffen es inzwischen viele Scripte, diese Anforderungen zu erfüllen. Interessant ist nun die Frage "Woher weiss das Script, in welchen Feldern welche Werte erwartet werden"?

Eingabefelder haben in der Programmierung immer einen eindeutigen Namen. Geben Sie dem Eingabefeld für die Email-Adresse nun den Namen "email", ist es nicht weiter schwer zu erraten, welches Format der Datensatz haben soll. Geben Sie diesem (und anderen) Felder(n) nun Namen, die keinen Rückschluss bieten auf das, was hier eingetragen werden soll, wird es für das Script schon wesentlich schwerer:

Dieses Formular gibt jedem Script genau Auskunft, welche Werte wo erwartet werden:

<input name="vorname" value=""/><input name="nachname" value=""/><input name="strasse" value=""/><input name="nummer" value=""/><input name="email" value=""/>

So wird es schon schwerer:

<input name="i_bv" value=""/> // Input_BasisdatenVorname
<input name="i_bn" value=""/> // Input_BasisdatenNorname
<input name="i_as" value=""/> // Input_AdresseStrasse
<input name="i_an" value=""/> // Input_AdresseNummer
<input name="I_be" value=""/> // Input_BasisdatenEmail

Spätestens beim Email-Feld dürften die meisten Scripte scheitern, da Sie hier keinen Wert im richtigen Format eintragen. Ich würde sicherheitshalber in allen Feldern außer dem Email-Feld das @-Zeichen verbieten - so vermeiden Sie, dass das Script halt einfach überall eine Email-Adresse einträgt.

Die Validierung von plausiblen Eingabewerten in unterschiedlichen Feldern kann bereits einen einfachen Lösungsansatz darstellen.

 

Das leere Textfeld - Der Honeypot

Eine weitere Möglichkeit besteht darin, ein Input-Feld anzulegen, welches nicht ausgefüllt werden soll. Damit auch wirklich keiner auf die Idee kommt, es trotzdem zu tun, können Sie dieses Feld recht einfach per css verstecken.

Sobald also nun ein Submit des Formulars erfolgt und dieses Feld mit einem beliebigen Wert gefüllt wurde, können Sie davon ausgehen, daß hier ein Programm am Werke war.

<input name="ichSollLeerBleiben" value=""/> // Honeypot Feld

Achten SIe bei dieser Technik auf 2 Dinge:

  • Die Spam-Robots lernen dazu. Beziehungsweise die Menschen, die diese Robots programmieren. Vergeben Sie also geschickterweise einen Feldbezeichner, der sich dynamisch ändert, sonst wird das wieder ein Wettrennen zwischen Ihnen und dem Programmierer des Spam-Bots.
  • Geben Sie dem Honeypot-Feld keinen Bezeichner, der auf (anderen) Seiten gängig ist. Sonst versucht am Ende der Browser, das Feld per Autocomplete auszufüllen, ohne dass der Anwender etwas davon merkt - die Validierung des Formulars jedoch fehlschlägt.

Als Honigtopf oder auch englisch Honeypot wird eine Einrichtung bezeichnet, die einen Angreifer oder Feind vom eigentlichen Ziel ablenken soll oder die Personen in einen Bereich hineinziehen soll, der sie sonst nicht interessiert hätte. Der Ursprung stammt aus der Beschäftigung mit Bären, die man mit einem Honigtopf sowohl von einem Angriff auf die eigene Person oder das eigene Lebensmittellager ablenken, als auch in eine Falle locken kann.
[Wikipedia]

 

Fazit

Es geht auch ohne Captcha. Zugegeben, es bedeutet einen etwas höheren Aufwand bei der Erstellung der Formulare. Die Erfahrung zeigt, dass einfach gehaltene Formulare mehr wertvolle Emails von Ihren Kunden und Interessenten bedeuten. Und das sollte es wert sein - finde ich.