Negative Captchas zur Spamvermeidung

Niemand wird mir widersprechen wenn ich behaupte, Spam sei die nervigste Nebenerscheinung der elektronischen Kommunikation. So vielfältig wie die Wege der Verständigung sind, so reichhaltig sind auch die Varianten der Spammer.
Vom Spam bleibt auch mein Blog nicht verschont.
Jeder Blogbetreiber gibt sich natürlich große Mühe, die unerwünschten Einträge auf der eigenen Website so weit wie möglich zurückzuhalten. Die Verfahren hierbei sind vielfältig. Viele Seitenbetreiber setzen auf Captchas. Hierbei müssen auf dem Bildschirm angezeigt verzerrte Buchstabenkombinationen vom Nutzer eingetippt werden. Für Computer stellen diese Hürde in den meisten Fällen eine große Hürde dar, denn Computer können nicht „lesen“.
Captchas stellen jedoch auch einige Nutzer vor Probleme: Selbst ein Mensch kann die angezeigten Buchstaben nicht immer fehlerfrei erkennen. Zudem muss der Mensch aktiv werden, um zu bestätigen, dass er kein Spammer ist.

Bisher habe ich lediglich Akismet zur Spamblockierung im es-de-WE.BLOG eingesetzt. Akismet funktioniert sehr gut, lieferte mir in letzter Zeit jedoch leider auch einige „false positives“, echte Kommentare also, die fälschlicherweise als Spam markiert wurden.
Das dumme hierbei ist, das diese „false positives“ in der Moderationsliste nicht leicht herauszufiltern sind. Wenn diese Liste 1000 Spam-Kommentare umfasst, ist man schnell geneigt, einfach auf „Alles löschen“ zu klicken. Leider verschwindet hierbei dann auch der echte Kommentar im digitalen Nichts.

Deshalb habe ich nun zusätzlich zu Akismet ein Negatives Captcha eingebaut. Hierbei wird auf der Kommentarseite ein zusätzliches Formularfeld versteckt eingebaut, welches von normalen Nutzern nicht gesehen und ausgefüllt wird.
Ein Spambot macht hier jedoch keinen Unterschied: Er füllt stur alle Felder aus, da er sonst Gefahr laufen könnte, ein Pflichtfeld nicht zu erwischen.
Und hier kommt der Clou: Wird das für Menschen unsichtbare Feld ausgefüllt, wird der Kommentar gar nicht erst in die Datenbank geschrieben.
Als Basis hierfür habe ich das Comment-Spam-Trap-Plugin von seologs.com benutzt, für meine eigenen Bedürfnisse aber etwas angepasst.

Für den Fall, dass die Spambots mit der Zeit dazulernen sollten, habe ich auch schon vorgesorgt: Der Name des unsichtbaren Feldes ändert sich periodisch. Und sollte der Bot auch diese Hürde überwinden, landet sein Kommentar im Akismet-Spam wie bisher auch. Ich bin gespannt.

Ähnliche Beiträge:

Verweise (Trackbacks) von anderen Weblogs:

Kommentare von Lesern:

  1. tipp
    23.11.2007, 12:05 Uhr
    1

    Hallo,

    nette Idee, aber:
    Versteckte Felder haben eine Markierung „hidden“

    if(type=hidden) machenichts();

    Der Spambot braucht nur diesen Algorithmus und schon ist der Hebel ausgehebelt…

  2. Martin Weber
    23.11.2007, 13:04 Uhr
    2

    Fast richtig ;)

    Die Felder weden in einen Div-Container gesteckt, welcher mit CSS per display:none nicht angezeigt wird. Du siehst das Eingabefeld, wenn du dir die Seite ohne CSS oder den Quellcode direkt ansiehst.
    Selbst wenn manche Spambots diese Hürde überwinden, landet ihr Spam im Akismet. So war es bisher auch schon, nur das ausnahmslos jeder Spam dort landete. Dies machte das Erkennen von „false positives“ sehr schwer, wie oben schon geschrieben.
    Es geht mir darum, den Spam, der bis zu Akismet durchkommt, zu verringern. So kann ich leichter die „false positives“ in der Spam-Warteschlange erkennen und freischalten. Weiterhin wird meine Datenbank natürlich um ein Vielfaches weniger belastet.
    Das negative Captcha und Akismet zusammen werden den Spam (hoffentlich) zurückhalten.

    Das Tolle dabei ist, das dies ohne zusätzliche Interaktion von Userseite aus geschieht:
    Man muss kein Captcha abtippen, keine dummen Fragen beantworten oder dergleichen.

  3. tipp
    23.11.2007, 13:53 Uhr
    3

    Der Bot kann aber auch css Dateien auslesen.
    Sicherlich ein größerer Aufwand, aber wenn das alle machen sicherlich lohnenswert.

    Aber solange es funktioniert und du eh dahinter noch ein Spamfilter hast, scheint die Idee ganz gut zu sein.
    :)

  4. Simon Kokolakis
    26.11.2007, 06:31 Uhr
    4

    sehr gute Idee! Ich hoffe es bringt den gewünschten Erfolg.

  5. dAniel hAhler
    28.12.2007, 21:48 Uhr
    5

    Gibt es hierzu schon einen Erfolg zu vermelden?

  6. Martin Weber
    28.12.2007, 23:32 Uhr
    6

    Hallo Daniel,

    die Technik funktioniert: Fast alle Spambots scheitern (momentan, hoffentlich aber auch dauerhaft) an der Hürde des unsichtbaren Feldes. Hier wirkt wohl auch der von Zeit zu Zeit geänderte Name des versteckten Feldes positiv mit.

    Nur ein Spambot hat sich von Anfang an nicht um das negative Captcha geschert und möchte mir immer noch ein- bis zwei Mal am Tag seine „New Offers“ andrehen.
    Aber die landen zuverlässig in Akismet, denn jeder Spam-Kommentar dieses Bots fängt mit „Hi! New offers“ an; wonach sich ja zuverlässig filtern lässt.

    Also: Bisher äußerst guter Erfolg, ich habe in der Akismet-Schlage jetzt nur noch ca. 10 Spam-Kommentare pro Woche zu löschen.

    Nachtrag, 15.04.08: Mittlerweile ist das Spamaufkommen sogar wieder gesunken, es kommen nur noch 1 – 2 Kommentare pro Woche durch.

Kommentar abgeben:

Kommentare können mit Basis-HTML formatiert werden.