Inhalt

CAPTCHAs und Barrierefreiheit - Ein unlösbares Problem?

Ein Beispiel-Captcha-Bild mit Buchstaben und ZahlenJeder von uns kennt sie, da sie mittlerweile auf fast jeder Website anzutreffen sind, auf der der Benutzer Eingaben machen muss: CAPTCHAs. Eigentlich sind CAPTCHAs dazu gedacht, Menschen und Computervoneinander zu unterscheiden und Spam und anderen Datenmüll zuverhindern. Leider stellen die kleinen Bilder mit den verdrehten Buchstaben und Zahlen für viele Menschen aber eine unnötige Barriere dar.

CAPTCHA steht für "Completely Automated Public Turing test to Tell Computers and Humans Apart", also eine automatisierte Methode, die es ermöglichen soll, den Benutzer einer Website eindeutig als Menschen zu identifizieren. Daher werden oft kleine Bilder mit Buchstaben und Zahlen auf Webseiten eingebaut und der Benutzer gebeten, die auf diesen Bildern angegebene Kombination einzugeben.

Beispiel-Captcha-Bild mit Zahlen Aufgrund dessen, dass es wenig Sinn machen würde, einem solchen Bild eine Textalternative mit dem auf dem Bild abgebildeten Text zu geben, stellt ein CAPTCHA eine unüberbrückbare Barriere für Nutzer von Screenreadern dar. Auch Menschen, die schlecht sehen oder lesen können, haben Probleme mit CAPTCHAs. Daher ist es diesen Menschen unmöglich auf manchen Seiten Kommentare zu hinterlassen oder Benutzerkonten anzulegen. Des Weiteren steht der Sinn von CAPTCHAs in Frage, da Schrfiterkennungsprogramme immer besser werden, die CAPTCHAs mit Erfolgsquoten zwischen 88% und 100% analysieren und richtig erkennen können.

Barrierearme CAPTCHAs

Da grafische CAPTCHAs für Blinde und Sehbehinderte eine schwerwiegende Barriere darstellen, wurden verschiedene Formen von CAPTCHAs entwickelt, die eine geringere Barriere darstellen. Von barrierefreien CAPTCHAs kann man allerdings nicht sprechen, da auch die alternativen CAPTCHAs bei bestimmten Einschränkungen zum Problem werden können.

Textaufgaben

Eine Variante von barrierearmen CAPTCHAs sind Textaufgaben, die auch von einem Screenreader vorgelesen oder mit einer Schriftvergrößerung problemlos skaliert werden können. Um zu prüfen, ob das Formular von einem Menschen ausgefüllt wurde, benutzen Text-CAPTCHAs Rechenaufgaben, Logikrätsel oder Wissensfragen.

Ein Captcha, das den Anwender zur Angabe einer Zahlenfolge, die vorgelesen wird, auffordert

Das Content Mangement System Papoo verwendet zum Beispiel einfache Rechenaufgaben, wie "Die Zahl 12 plus die Zahl 6 = ". Bei der Eingabe von 18 wird der Kommentar veröffentlicht. Als Wissenfragen werden einfache Fragen wie "Welches Tier kann fliegen? Hund, Katze oder Huhn?" verwendet. Ebenso kann das Umschreiben einer Zeichenfolge gefordert werden: "Geben Sie alle Zahlen innerhalb von 'w33r5g8i921' ein".

Allen Text-CAPTCHAs ist gemeinsam, dass sie einen barrierefreien Zugriff für assistive Technologien ermöglichen, aber je nach Fragestellung Menschen mit Lernschwierigkeiten ausschließen können. Die Sicherheit des Text-CAPTCHAs ist abhängig von der Zahl möglicher Aufgaben und von deren Variationsbreite. Um die Sicherheit zu erhöhen, werden auch verschiedene Formen wie Rechenaufgaben und Wissensfragen gemischt.

Ein Captcha, das den Anwender zum Lösen einer vorgelesenen Rechenaufgabe auffordert

Die Website textCAPTCHA.com (englisch) bietet Millionen verschiedener Textaufgaben, die in die eigene Website über eine Programmierschnittstelle (API - application programming interface) eingebunden werden kann. Hier zeigt sich ein weiteres Problem von Textaufgaben, sie sind nur für die Nutzer lösbar, die die jeweilige Sprache der Aufgaben beherrschen. Wer einen deutschsprachiges Text-CAPTCHA einrichten will, findet auf der Demoseite von textCAPTCHA.com gute Anregungen für Textaufgaben, die schlecht von einem Programm aufzulösen sind.

reCAPTCHA

Beispiel für ein ReCaptchaDie Erfinder des grafischen CAPTCHAs, die Carnegie Mellon University, hat eine andere barrierearme Form von CAPTCHAs entwickelt. Bei reCAPTCHA (englisch) wird zusätzlich zum grafischen CAPTCHA ein Audio-CAPTCHA angeboten. Damit das Audio-CAPTCHA nicht von einer Spracherkennung aufgelöst werden kann, wird meist eine verfremdete Stimme oder eine akustische Kulisse mit Umgebungslärm verwendet.

Für Menschen mit einer Hörbeeinträchtigung stellt ein Audio-CAPTCHA eine ähnliche Barriere dar wie ein grafisches CAPTCHA für einen Sehbehinderten. Ältere Menschen, bei denen sich sowohl das Sehen und als auch das Hören verschlechtert, haben fast keine Chance ein reCAPTCHA aufzulösen. Außerdem wird bei reCAPTCHA deutlich, dass Audio-CAPTCHAs genauso wie Text-CAPTCHAs eine Internationalisierung benötigen, damit Sie auf Websites mit unterschiedlichen Sprachen eingesetzt werden können.

Spambekämpfung ohne CAPTCHA

Da sich CAPTCHAs in den letzten Jahren durchgesetzt haben, wird bei der Spambekämpfung viel zu schnell auf CAPTCHAs gesetzt. Dabei gibt es etliche Alternativen, die die Spamflut mindestens genauso gut eindämmen. Durch die Kombination mehrerer Methoden zur Spambekämpfung können sehr gute Ergebnisse erzielt werden, die kaum noch manuelles Eingreifen notwendig machen.

Unsichtbares Eingabefeld

Eine einfache Methode, um Spambots zu überlisten, ist das Einfügen eines unsichtbares Eingabefelds in ein Formular. Das Textfeld wird durch eine einfache CSS-Regel ausgeblendet:

.hidden_field (display: none;)

Durch "display:none;" wird das Feld komplett von der Seite ausgeblendet, es ist nicht sichtbar und es wird auch nicht von Screenreadern vorgelesen. Spambots versuchen allerdings auch dieses Feld mit einem Inhalt zu füllen, um eine Fehlermeldung wegen nicht ausgefüllter Felder zu vermeiden. Das verarbeitende Skript kann alle Anfragen, bei denen das unsichtbare Eingabefeld ausgefüllt ist, blockieren.

Wechsel der Formularfeld-Bezeichnungen

Bei beliebten Content-Management-Systemen wie Wordpress kennen Spamsbots die genauen Bezeichnungen der Formularfelder. Durch den Wechsel der Formularfeldbezeichnungen kann Spambots das Absetzen von Spam erschwert werden.

Zeitlimit für das Ausfüllen von Formularen

Spambots brauchen in der Regel weniger als 10 Sekunden, um ein Formular auszufüllen. Misst man die Zeit zwischen den Ausliefern der Formulars und dem Absenden, können automatisiert ausgefüllte Formulare verweigert werden.

SPAM-Bots per .htaccess-Datei ausschließen

Spambots haben oft besondere Kennzeichnungen oder kommen von bestimmten IP-Adressen. Durch eine Blacklist lassen sie sich mittels einer .htaccess Datei ausschließen.

SPAM-Bots per Skript ausschließen

Spambots können durch die Daten, die sie im HTTP-Header übertragen, erkannt werden. Oft sind die HTTP-Anfragen auch nachlässig programmiert, so dass ein Skript erkennen kann, dass die Anfrage nicht durch einen Browser gestellt wird. Durch eine Analyse der HTTP-Anfragen, der IP-Adresse und weiterer Metadaten, kann Spam erkannt und aussortiert werden.

Ein sehr effektives Skript zum Blocken von Spam ist Bad Behavior.

Überprüfung durch Service

Die Erkennung von Kommentarspam kann auch durch einen externen Service vorgenommen werden. Dafür wird der komplette neue Kommentar an den Service übertragen und vom Anbieter bewertet. Der Vorteil eines Services liegt darin, dass er eine sehr gute Datenbasis hat, um Kommentarspam zu klassifizieren. Der Nachteil in der Übertragung der Daten an den Anbieter.

Der Service Akismet wurde urprünglich für Content-Management-System Wordpress entwickelt, kann aber durch eine API auch von anderen Systemen genutzt werden.

Inhaltsfilter (Blacklist-Filterung)

Die Inhalte, die in Formulare eingegeben werden, können auf bestimmte Stichwörter geprüft werden. Tauchen kritische Wörter (wie Cialis oder Vigra) auf, werden die Daten nicht verwendet. Um mit dieser Methode Spam einzudämmen, muss die Liste abzulehnender Begriffe (Blacklist) gut gepflegt werden.

Nachträgliches Aussortieren von Spam

Bei Kontaktformularen, die eine Benachrichtigung an den Betreiber der Website verschicken, kann die Filterung auch im E-Mail-Postfach vorgenommen werden. Die Spamfilter, die auf E-Mail-Servern zum Einsatz kommen (z.B. SpamAssassin) sind sehr ausgereift und werden sehr gut gepflegt.

Anmeldepflicht

Um die Veröffentlichung von Spam in Weblogs und Foren zu verhindern, kann es sinnvoll sein eine Anmeldung vom Benutzer zu verlangen. Für Spammer bedeutet dies einen nicht zu unterschätzenden Mehraufwand. Zusätzlich kann eine Bestättigung der Anmeldung über eine E-Mail gefordert werden, wozu der neue Nutzer eine gültige E-Mail-Adresse benötigt. Das Anmeldeverfahren wird dadurch aufwendiger und für Spammer unattraktiver. Die verpflichtende Anmeldung schließt Spam nicht aus, verringert aber die Menge beträchtlich.

Externe Beiträge moderieren

Eine andere Möglichkeit, ist die Veröffentlichung von Kommentaren zu moderieren. Neue Kommentare werden erst als Entwurf gespeichert und dann vom Seitenbetreiber nach Prüfung freigeschaltet. Dieses Vorgehen empfiehlt sich, wenn die Zahl der Kommentare gering ist oder trotz Schutz zu viele Spamkommentare veröffentlicht werden. Der Aufwand ist zwar groß, aber die Website kann komplett spamfrei gehalten werden.

Ping-Services meiden

Bei Weblogs.com, Technorati und anderen Services werden neue Beiträge in Weblogs veröffentlicht. Dazu pingt der Betreiber eines Weblogs den Service an und benachritet ihn darüber, das ein neuer Artikel auf seiner Website veröffentlicht wurde.

Der Nachteil ist, dass auch Spammer Weblog-Services nutzen, um an die URLs von Websites zu kommen. Sobald der erste Ping bei einem Weblog-Servie eingegangen ist, kann mit dem Besuch von Spammern gerechnet werden. Bei der Benutzung von Weblog-Services sollte also abgewägt werden, ob Besucher über desen Website kommen oder ob dieser nur Spammer anzieht.

Fazit

Ein Beispiel für ein nicht zugängliches CaptchaFür die Bekämpfung von Spam bieten sich außer CAPTCHA viele verschiedene Methoden an. Die Auswahl sollte nach dem Umfang des Spamproblems und unter Berücksichtigung der Vor- und Nachteile des Verfahrens getroffen werden. Auch eine Kombination verschiedener Methoden, wie z.B. Bad Behaviour und ein verstecktes Eingabefeld, kann die Effektivität des Spamschutzes erhöhen. Durch den Verzicht auf CAPTCHAs werden Barrieren vermieden und die Bedienung eines Formulars für alle Nutzer erleichtert.