webthreads.de - Web 2.0, Web-Entwicklung und Netzkultur von Markus Kühle

Captchas automatisch befüllen lassen

Um lästige Spam Kommentare oder sonstige Spam Attacken abwehren zu können setzt man in der Regel Captchas ein. Die bekanntesten Captchas sind wohl die Bilder auf denen wirre Buchstaben oder Zahlen stehen und man diese nur als Mensch entziffern kann. Ein solches Beispiel findet man z.B. auf der Registrierungsseite für einen Google Account:

Leider sind solche Buchstabenbilder nicht immer trivial sondern manchmal gänzlich unlösbar – jedenfalls erging es mir erst letzte Woche so.
Aufgrund dieser Problematik sind viele Webseite dazu übergegangen sehr einfach zu lösende Fragen als Captcha zu verwenden. Eine aktuell viel gesehen Frage ist z.B. “Wie heißt der Vorname von Franz Beckenbauer?”. Aber auch Mathefragen wie z.B. “Was ergibt 3+1″ sind beliebt. Das man eine Mathefrage auch übertreiben kann zeigt der folgende Screenshot, der im Interne kursiert:

Allerdings sieht man auf dem Screenshot, dass es sich um eine russische Seite handelt und bekanntlich können Russen grandios rechnen, so dass dieses Captcha für einen Russen wohl kein Problem darstellt.

Jedenfalls merkt man, dass Captchas nicht nur Bots von der Webseite ausschließen sondern auch unter Umständen die eigentliche Zielgruppe. Nun hat Peter Körner schon vor über zwei Jahren bemerkt und geschrieben, dass Bots ziemlich dumm sind und man dadurch sein Captcha sehr einfach gestalten kann. Er hat beschrieben, dass er z.B. nur ein Bild verwendet und der User das darauf abgebildete Tier (Elefant) eingeben muss. Das Bild ändert sich dabei nie sondern bleibt immer gleich. Weil man das ganze allerdings einfacher barrierefrei halten dann bietet sich eben die oben schon genannte Frage nach dem Vornamen von Franz Beckenbauer an.

Nun aber das eigentliche Highlight dieses Artikels: Peter Körner hat gestern einen wirklich sehr guten Hinweis auf die absolute Vereinfachung eines Captchas gegeben: Captchas automatisch durch JavaScript ausfüllen lassen. Immer noch ist die Ausgangslage, dass die Bots sehr dumm sind und in der Regel kein JavaScript verstehen. Die Vereinfachung des Captchas besteht nun darin, dass nach dem laden der Webseite ein JavaScript abläuft, der das Input Element selbst korrekt befüllt und dieses anschließend ausblendet:

<div id="antispam-div">
  Wie heißt der Vorname von <strong>Franz</stong> Bekenbauer?
  <input type="text" name="antispam" value=""></input>
</div>

<script type="text/javascript">
  var el = document.getElementById('antispam-div');
  el.value = 'Franz';
  el.style.display = 'none';
</script>

Sofern ein User also JavaScript im Browser eingeschaltet hat wird er diese Frage überhaupt nicht zu Gesicht bekommen, denn das umschließende div Element wird direkt ausgeblendet.

Da im Artikel von Peter Körner noch die Mootols-Variante präsentiert wurde kommt hier die dazugehörige einzeilige jQuery Variante =)

<script type="text/javascript">
  $("#antispam-div").val("Franz").css("display", "none");
</script>

Die Idee ist einfach genial und ich werde sie wohl so in meinen zukünftigen Projekten übernehmen.

3 Kommentare zu 'Captchas automatisch befüllen lassen' »»


Kommentare

  1. Kommentar by Lukas | 15.10.2008 at 16:59:00

    Zwei geniale Ideen!
    Darauf, dass ein einziges Captcha schon reicht, bin ich noch gar nicht gekommen. In meinem (bald vollendeten) CMS benutze ich ein normales Rechencaptcha, Aufgaben im Zahlenraum bis 20. Klasse 1 also^^
    Und das Captcha automatisch zu füllen, ist eine weitere gute Idee!

    Lukas

  2. Kommentar by infogurke | 16.10.2008 at 12:51:45

    Ich denk auch, dass ein einfaches Math-Captcha bei den meistens Seiten für die 08/15 Bots ausreicht.

    Bei Franz Beckenbauer ist das mit dem Vornamen vielleicht zu einfach und manche Leute sind verwirrt (bor, $seitenbetreiber ist doof, das steht doch da…).

  3. Kommentar by Marc | 17.10.2008 at 22:19:33

    Also lim x->0 für sin 1/x ist meiner Meinung nach unlösbar.
    Das schafft selbst ein Russe nicht.
    Ich glaub die Russen waren so gut in Schach und Wodka trinken.
    Die Inder sind doch so Mathe-Asse.


Hinterlasse ein Kommentar »»

Bad Behavior has blocked 2532 access attempts in the last 7 days.