Formulare sind an und für sich eine wunderbare Angelegenheit. Man kann dem Besucher eine Möglichkeit bieten, schnell Kontakt aufzunehmen, Kommentare und Meinungen unter Beiträge und in Foren zu schreiben oder zu beantworten, Bestellungen aufnehmen und was der tollen Dinge mehr sind.

Aber welcher Webseitenbetreiber und welcher Programmierer kennt das Problem nicht? Spammer nutzen die Formulare der Webseite, um ihre Werbung abzusetzen. In den meisten Fällen ist das lästig und unerwünscht. Aber manche Dinge, die da eingeschleust werden, könnten vielleicht auch nicht legal sein, uns so muss jeder Webseitenbetreiber bestrebt sein, dass solcher Schrott nicht auf seiner Webseite angezeigt wird. Was ist da besser als solchen Müll erst gar nicht zu erfassen?

 

Nicht jedes Formular muss abgesichert werden

Natürlich muss man nicht jedes Formular absichern, das auf der Seite verwendet wird. Bestellungen und Umfragen zum Beispiel werden in der Regel ja über Schaltflächen ausgefüllt. Da hat kein Spam-Robot eine Chance, unerwünschten Text einzuschleusen, der öffentlich sichtbar ist. Bei Kontaktformularen ist das auch kein rechtliches Problem, nur lästig, denn das ausgefüllte Formular bekommt die Öffentlichkeit ja nicht zu sehen.

Etwas anderes ist es da mit Beiträgen in Foren oder Gästebüchern, Kommentaren zu Beiträgen, also da, wo die Öffentlichkeit auch zu sehen bekommt, was der Spammer da los lässt.

Auslaufmodell der Absicherung: Captchas

Die bisher übliche und sehr weit verbreitete Methode, Captchas zu verwenden, ist durch die Technik mittlerweile überrollt worden und bringt nicht mehr viel. Captchas sind die Bildchen mit den schlecht lesbaren Buchstaben und Zahlen, die man dann – neben den anderen Angaben – in ein Feld des Formulars eintragen muss.

Mittlerweile sind die Programme zur Texterkennung so gut geworden, dass sie die meisten Captchas erkennen können. Die geistige Leistung, aus fast unleserlichen Symbolen die Zeichen herauszufiltern, ist also nicht mehr nur dem Menschen vorbehalten. Die Technik kann das in der Zwischenzeit auch.

Der Versuch, die Technik der Captchas selbst zu verfeinern und zu optimieren landet schließlich da, dass die Bilder für Menschen immer schlechter erkennbar und entzifferbar sind. Das ist natürlich weit weg von Benutzerfreundlichkeit.

Meine Alternativen

 Als (zur Zeit noch) bessere Möglichkeit, Formulare abzusichern, verwende ich blöde, unsinnige Fragen. Ziel dieser Frage ist natürlich wieder, Spammer so weit wie nur eben möglich auszuschließen. Das geht nur, indem man eine Antwort vom Besucher anfordert, die ein Robot nicht geben kann.

Beispiele sind:

  • Wie viele Beine hat ein Pferd?
  • Welche Farbe hat ein blaues Auto?

Da fragt sich doch der übliche Besucher: „Was soll diese Frage, wenn die Antwort schon vorgegeben ist?“

Ja, genau das ist ein weiteres Ziel dieser Fragen: Die Antwort, die der Besucher eingibt, muss natürlich wieder automatisch ausgewertet werden. Das geht aber nur, wenn die Antwort so klar wie Kloß-Brühe ist. Je mehr Spielraum für verschiedene Antworten die Frage lässt, desto schwieriger wird es auch, die Auswertung zu gestalten. Außerdem erhöht es Zufallstreffer von Robots. Die Frage „Wie viele Beine hat ein Pferd“ kann mit der Zahl 4 oder auch ausgeschrieben als vier in verschiedenen Schreibvarianten gegeben werden. Hier darf man den Besucher auch etwas leiten, indem man als Erläuterung schreibt, welche Form der Antwort man erwartet: Bitte als Wort in Kleinbuchstaben antworten.

Zufallstreffer der Robots vermeiden

Robots sind mittlerweile aber auch so ausgestattet, dass sie ganze Wörterbücher mit sich tragen, und diese in den Formularfeldern ausprobieren. Das ist zwar eine aufwändige Methode, die brute force genannt wird, weil sie eben mit roher Gewalt versucht, die richtige Eingabe zu treffen. Aber der zeitliche Aufwand hält sich doch in Grenzen, wenn man bedenkt, dass einige hundert oder gar tausend Eingaben pro Minute möglich sind.

Zeitsperre einbauen

Damit ergibt sich der nächste Ansatz: Ich baue eine Sperre ein, die nur eine bestimmte Anzahl an Eingaben pro Sekunde zulässt. Wenn ich sage: Das Formular darf nur jede Sekunde oder auch alle 2 Sekunden abgeschickt werden, dann wird das für Robots eine unerträglich lange Zeitspanne. Einem menschlichen Besucher fällt das aber nicht auf, denn er braucht ja sowieso ein wenig Zeit, um festzustellen, was nun von ihm erwartet wird, nämlich eine neuerliche Eingabe der Sicherheitsabfrage.

Antwort nicht zu kurz wählen

Ein weiterer Punkt ist bereits von der Wahl eines Passwortes bekannt: Die Antwort sollte nicht zu kurz sein. Die Zahl 4 als Antwort bei den Beinen kann ein Robot ganz schnell herausfinden, wenn er bei seinem Angriff mit den einstelligen Zahlen beginnt.

Antworten, die in Wörterbüchern stehen, vermeiden

Ja, auch das ist eine Sache, die wir schon von den Passwörtern kennen: Angreifer verwenden gerne Wörterbücher als Vorlage, weil es auch der menschlichen Natur entspricht, Wörter zu verwenden, die sich leicht merken lassen.

Eselsbrücken

Was für Passwörter gilt, das können wir uns auch auf die Sicherheitsfrage anpassen: Wir können den Besucher darauf hinweisen, dass er die hervorgehobenen Buchstaben genau in der Schreibweise eingibt, wie sie in der Frage dargestellt werden. Dann könnte man die Sicherheitsfrage zum Beispiel wir folgt abwandeln:

Wie viele Beine hat ein Pferd? (Bitte geben Sie die in der Frage farbig markierten Buchstaben in derselben Reihenfolge ein. (Groß- und Kleinschreibung übernehmen!)

Diese Variante hat allerdings einen riesigen Haken: Sie ist nicht barrierefrei!

Barrierefrei wäre es, wenn man sich auf die Anfangs- oder Endbuchstaben der Worte beschränkt. Man könnte auch verlangen, dass die Buchstaben dann in der umgekehrten Reihenfolge – also von hinten her – eingegeben werden müssen.

Und schließlich noch eine Sache, die den menschlichen Benutzer gar nicht trifft:

Dummy-Feld einbauen

Damit meine ich, dass man ein Formularfeld einbaut, das der Besucher gar nicht sieht, der Robot hingegen schon. Dieses Feld kann man dann vielleicht noch mit einer CSS-Klasse markieren, die es so gar nicht gibt, deren Namen aber required oder ähnlich lautet Es sollte ein Hinweis für den Robot sein, dass hier eine Eingabe erwartet wird. Dann kommt der Haken: Dieses Feld ist nicht wirklich benötigt. Im Gegenteil: Wenn etwas in diesem Feld steht, dann wird das Abschicken des Formulars verhindert!

Ein Robot füllt aber in der Regel alle Felder aus, vor allem dann, wenn da was von benötigt steht. Also hat er bei einem Zufallstreffer immer noch diese Hürde, die er überwinden muss. Wenn diese Prüfung als letztes abläuft, dann hat man dieses Pulver nicht zu früh verschossen. Da müht sich der Robot ab, alle Felder richtig auszufüllen, kommt vielleicht irgendwann an der Sicherheitsabfrage vorbei und dann das!


Newsletter-Anmeldung

Hinweis: Ihre eingegebenen Daten werden von mir nur für die Registrierung zum und den Versand des Newsletters verwendet. Diese Daten werden von mir verarbeitet und gespeichert. Weitere Informationen erhalten Sie in meiner Datenschutzerklärung.

Infos rund um Joomla!-Erweiterungen von Boldt Webservice, insbesondere BwPostman. Der Newsletter wird nur versendet, wenn es etwas neues gibt.

Bitte helfen Sie uns Spam zu vermeiden, und lösen Sie diese kleine Aufgabe!

captcha

() Pflichtfelder

×

Freiwilliges Honorar

Wenn Sie Boldt Webservice gut finden, freue ich mich über ihre Unterstützung:
  • Empfehlen Sie Boldt Webservice weiter
  • oder lassen Sie mir ein freiwilliges Honorar zukommen, wenn Ihnen die Tipps auf dieser Seite oder die Erweiterungen für Joomla eine Hilfe waren. Die Abwicklung erfolgt über Paypal.

Sie unterstützen mit ihrem freiwilligen Honorar auch die Neu- und Weiterentwicklung freier Software und Erweiterungen für das CMS Joomla.

Geben Sie einfach unten den Betrag ein, den Sie mir zukommen lassen möchten und klicken auf den Button freiwilliges Honorar: