Brandmaier Webentwicklung

Spamschutz-Methoden im Test

Viele der von mir programmierten Websites bieten die Möglichkeit, den Webseitenbetreiber direkt zu kontaktieren. Eine solche Kontaktaufnahme habe ich bereits in vielen Facetten umgesetzt, entweder als einfaches Formular, als Terminbuchungssystem oder in Form einer Rückruf-Anfrage. Der große Vorteil einer Kontaktfunktion ist, dass die Besucher der Website mit einem Klick einen Termin buchen, eine Anfrage senden oder auch Fragen stellen können.

Leider sind Kontaktformulare sehr anfällig für Spam. Neben echten Besuchern können auch automatisierte Programme die Kontaktformulare ausfindig machen und diese mit Werbung oder anderen unerwünschten Inhalten füllen. Besonders ärgerlich ist es für einen Webseitenbetreiber, wenn das eigene E-Mail Postfach regelmäßig aussortiert werden muss, um die Spam-Nachrichten aus den echten Nachrichten herauszufiltern. Hier spreche ich aus Erfahrung, denn auch das Kontaktformular auf dieser Website (Kontakt-Seite) ist bei Spam-Algorithmen heiß begehrt.

Freiwilliges Spam-Sammeln

Da ich mich nicht länger der ewigen Qual des Spam-Aussortierens hingeben will, habe ich beschlossen, Gegenmaßnahmen auf meiner Website einzuleiten. Dafür habe ich zunächst alle Spam-Nachrichten, welche mich erreichen, gesammelt.

In meinem Beobachtungszeitraum von drei Monaten habe ich über 60 Spam-Mails erhalten. Zu meiner Überraschung waren manche Nachrichten sogar nett verfasst und recht aufwendig gestaltet. Die meisten E-Mails beinhalteten jedoch eher dubiose Angebote und offensichtlich bösartige Links (siehe Screenshot).

Spamschutz-Methoden im Test

Um diese Spam-Mails zu stoppen, habe ich sechs verschiedene Spamschutz-Methoden nacheinander in das Kontaktformular auf dieser Website eingebaut. Mein Ziel dabei war es, die beste Balance aus Nutzerfreundlichkeit und Spamschutz zu finden. Diese zwei Ziele stehen sich leider häufig im Weg, denn je sicherer der Spamschutz, umso mehr Hürden müssen auch normale Besucher überwinden, um eine Nachricht zu senden. Das folgende Bild zeigt mein Kontaktformular und eine mögliche Spamschutz-Methode daneben. In diesem Fall muss der Besucher alle Bilder mit Muffins auswählen, um eine Nachricht abschicken zu können.

Obwohl diese Methode einen sehr hohen Schutz vor Spam bietet, würde ich sie nur ungern verwenden, da sie dem Besucher viel Zeit raubt. Im schlimmsten Fall wird das Ausfüllen des Kontaktformulars aufgrund des aufwendigen Spamschutzes abgebrochen und der potenzielle Kunde geht verloren. Um die optimale Balance aus Nutzerfreundlichkeit und Sicherheit zu finden, habe ich deswegen ein ganzes Spektrum an Spamschutz-Methoden ausgetestet, von höchster Nutzerfreundlichkeit zu höchstem Schutz vor Spam.

  • Standard: Beschreibt mein normales Kontaktformular, welches keinen Schutz vor Spam besitzt.
  • Visibility-Honeypot: Bei dieser Methode wird ein zusätzliches Feld in das Kontaktformular eingefügt. Dieses Feld taucht jedoch nur im Code auf und wird durch das CSS Attribut visibility:hidden beim Anzeigen der Website versteckt. Dadurch wird das Feld von Spam-Programmen, welche den Code einer Website analysieren, erkannt. Echte Besucher können das Feld beim Betrachten der Website jedoch nicht sehen. Wird das versteckte Feld ausgefüllt, so kann sich der Websitebetreiber sicher sein, dass es sich um eine Spam-Nachricht und keine echte Anfrage handelt. Der große Vorteil dieser Methode ist, dass sie die Nutzerfreundlichkeit des Kontaktformulars überhaupt nicht einschränkt, da das Formular aus Sicht des echten Besuchers unverändert bleibt.
  • Z-Index-Honeypot: Diese Methode nutzt das gleiche Prinzip wie der vorherige Honeypot. Das zusätzliche Feld wird jedoch nicht mit visbility:hidden ausgeblendet, sondern mithilfe des CSS Attributs z-index:-1 hinter ein anderes Feld geschoben. Intelligente Spam-Algorithmen prüfen, ob ein Feld mithilfe von visbility:hidden ausgeblendet ist und füllen solche Felder nicht aus. Die Prüfung, ob ein Feld im Kontaktformular hinter einem anderen Feld versteckt liegt, ist jedoch viel aufwendiger, was den Z-Index-Honeypot zu einer guten Alternative des Visbility-Honeypots macht.
  • Gestiken: Bei dieser Methode wird eine komplexe Gestik wie zum Beispiel ein “Wischen” in das Kontaktformular eingefügt. Eine solche Gestik ist ein noch besserer Spamschutz als die bisher vorgestellten Methoden, da Spam-Programme in der Regel nicht in der Lage sind, komplexe Bewegungen zu simulieren. Leider sind Gestiken aber auch etwas weniger nutzerfreundlich als die vorherigen Methoden, da sie in Desktop-Anwendungen eher unüblich sind und somit missverstanden werden können.
  • Mathematische Berechnung: Diese Methode verlangt, dass der Besucher eine einfache mathematische Rechnung, wie zum Beispiel „Was ergibt 2 + 2?“, lösen muss. Je komplexer die Berechnung, umso höher der Spamschutz. Gleichzeitig nimmt aber auch die Nutzerfreundlichkeit mit zunehmender Komplexität ab, da es für den Nutzer schwieriger wird, die zusätzliche Frage zu lösen.
  • Wissensfrage: Bei dieser Methode muss der Besucher eine Wissensfrage beantworten, welche leicht herausgefunden werden kann oder allgemein bekannt ist. Ich habe mich für die Frage „Wer moderiert die Sendung: Wer wird Millionär?“ entschieden. Auch wenn der Spamschutz bei einer solchen Frage relativ hoch ist, verlangt diese Methode auch relativ viel Anstrengung von echten Besuchern. Sollten diese die Antwort auf die Frage nicht kennen, müssen Sie das Ausfüllen des Formulars pausieren und erst mal die richtige Antwort recherchieren. Außerdem ist mir persönlich auch aufgefallen, dass es sehr schwer ist Fragen zu formulieren, bei denen die Antwort allgemein bekannt und eindeutig bestimmbar ist.
  • Captcha: Captchas sind kleine Aufgaben, welche für Menschen einfach zu lösen sind, aber nicht für Computerprogramme. Google bietet zum Beispiel einen Captcha-Service, welcher einfach in das eigene Kontaktformular eingebunden werden kann. Betrachtet ein Besucher das Kontaktformular, baut dieser Service automatisch verzerrte Texte oder Bild-Puzzle in das Formular ein. Der Besucher muss dann den angezeigten Text eingeben oder passende Bilder auswählen. Da diese Captcha-Services sehr weit entwickelt und vielfältig erprobt sind, bieten sie einen sehr hohen Schutz vor Spam. Leider können vor allem die Bild-Puzzle uneindeutig und damit frustrierend für Besucher sein, was wiederum die Nutzerfreundlichkeit deutlich einschränkt.

Ergebnisse – Spam me if you can

Ich habe alle der vorgestellten Methoden nacheinander über mehrere Monate getestet und bin dabei auf die folgenden Ergebnisse gestoßen. Als Maßeinheit für Spamschutz habe ich „Erhaltene Spam-Mails pro Woche“ gewählt, um die Wirksamkeit der verschiedenen Methoden vergleichbar zu machen.

Ja nach eingebauter Spamschutz-Methode haben mich null bis fünf Spam-Mails pro Woche erreicht.

  • Standard: Ohne Spamschutz erhalte ich fünf Spam-Mails pro Woche.
  • Visibility-Honeypot: Diese Art von Honeypot wurde von allen Spam-Algorithmen, welche es auf meine Website abgesehen haben, erkannt und nicht ausgefüllt. Dadurch haben alle Spam-Mails meinen Sicherheitscheck durchlaufen und es sind fünf ungewollte E-Mails pro Woche in meinem Postfach aufgetaucht.
  • Z-Index-Honeypot: Im Gegensatz zum vorherigen Honeypot wurde der Z-Index-Honeypot nicht erkannt. Alle Spam-Programme sind in die Falle getappt und haben das versteckte Feld ausgefüllt. Somit hat mein Sicherheitscheck vollkommen funktioniert und alle Spam-Mails wurden erkannt und gefiltert.
  • Gestik: Das Einbauen einer Gestik hat ebenfalls jegliche Spam-Mails abgewehrt. Leider musste ich bei dieser Methode feststellen, dass auch viele echte Besucher Probleme dabei hatten, die ungewohnte Gestik auszuführen.
  • Mathematische Rechnung: Dieses Ergebnis hat mich etwas verblüfft. Alle anderen Methoden haben entweder gar keine oder alle E-Mails abgehalten. Die mathematische Rechnung hat jedoch nur einen Teil der Spam-Mails abgehalten. Konkret sind drei Spam-Mails mit richtigem Ergebnis durchgelassen worden. Aufgrund der sonst konstanten fünf Spam-Mails pro Woche gehe ich davon aus, dass zwei Mails pro Woche es nicht geschafft haben, das mathematische Rätsel zu lösen. Meiner Meinung nach ist die plausibelste Erklärung für dieses Phänomen, dass sich meine Website im Visier von mehreren Spam-Programmen befindet, welche unterschiedlich ausgereift sind. Das würde auch die großen qualitativen Unterschiede bei der Gestaltung und Formulierung der Spam-Mails erklären.
  • Wissensfrage: Die Wissensfrage wurde von keinem Spam-Algorithmus richtig beantwortet. Somit wurden alle bösartigen E-Mails erkannt und herausgefiltert. Leider hatten auch echte Besucher Probleme damit, das Kontaktformular abzuschicken. Manche Besucher haben zum Beispiel „Guenther“ anstatt „Günther“ geantwortet und wurden deswegen von meinem Spamschutz aussortiert.
  • Captcha: Das weitentwickelte Captcha hat wie erwartet alle Spam-Emails erfolgreich herausgefiltert.

Fazit

Dieses kleine Experiment hat mir gezeigt, dass die meisten Spam-Emails, welche ich erhalte, von relativ simplen Programmen versendet werden. Deswegen reichen bereits einfache Maßnahmen wie zum Beispiel ein Honeypot-Feld, um zwischen echten Besuchern und Spam-Algorithmen zu unterscheiden. In meiner Situation ist der Z-Index basierte Honeypot definitiv die beste Wahl, da diese Methode sämtlichen Spam erkennt und gleichzeitig für die echten Besucher unsichtbar ist. Da diese Methode die Nutzerfreundlichkeit nicht einschränkt, werde ich sie in Zukunft standardmäßig in alle meine Kontaktformulare einbauen.