Thiemos Archiv
- Tuesday, 2011-08-09 17:03
- Spammer sind dumm.
Ich hatte vor einigen Wochen eine Protokollierung im Hintergrund meines E-Mail-Formulars aktiviert und bin eben wieder darüber gestolpert. Das Ergebnis: Im Durchschnitt wird jeden Tag 20 mal versucht, Müll in mein Kontaktformular zu kippen. Das ist noch relativ harmlos, ich hatte Schlimmeres befürchtet. Das Bemerkenswerte: Kein einziger dieser Versuche ist erfolgreich. Es kommt vielleicht ein oder zweimal im Jahr vor, dass mich merkwürdige E-Mails erreichen, bei denen habe ich dann aber den Eindruck, dass sie von menschlichen Spammern (bezahlte Chinesen?) oder schlicht verwirrten Websurfern eingetippt wurden. Zwei von siebentausend. Woran scheitern die restlichen 99,999%?
Zuerst blockiere ich pauschal alle E-Mail-Versuche, die mehr als drei Weblinks enthalten, und habe allein damit eine Erfolgsquote von sage und schreibe 96%. Oft genug stopfen die Spammer ganze 50 Weblinks in eine einzige Nachricht. Der Durchschnitt liegt in meiner Erhebung bei 30 Weblinks je Spamversuch. Die Logik dahinter habe ich schon einmal erklärt: Wenn von 50 Spamversuchen 49 blockiert werden, dann müssen die Spammer 50 mal mehr Versuche starten oder – was unendlich einfacher ist – 50 mal so viele Links in einen Spamversuch packen, um die selbe Menge ihres Drecks im Web abladen zu können, wie es ohne Filter möglich wäre.
Im Quelltext sieht mein Weblink-Test so aus:
if (substr_count($text, "://") > 3)Das ist simpel und effektiv und blockiert auch »https«, »ftp« und sogar einige falsch geschriebene URLs (ja, Spammer sind wirklich dumm). Natürlich kann ein so einfacher Test auch mal einen regulären Besucher behindern, aber ich zeige in diesen Fällen immer eine klare Meldung an und gebe dem Menschen die Möglichkeit, seine Nachricht zu ändern. Spammer lesen meine Bildschirmtexte nicht – erst recht keine deutschen – so dass ich keine Angst haben muss, dass sie sich darauf einstellen.
Aber selbst ohne meine URL-Obergrenze würden 100% der Spamversuche stecken bleiben, weil alle Skripte vollkommen daran scheitern, mein E-Mail-Pflichtfeld auszufüllen. Im HTML-Quelltext heißt dieses Feld nur field3 und ist mit einem »@« vorbelegt. Für einen Menschen und selbst für Screenreader-Benutzer ist das kein Problem, da ich ein aussagekräftiges, mit dem Eingabefeld verknüpftes Label mitliefere. Aber Spamskripte können weder damit noch mit dem Feldnamen etwas anfangen. Sie könnten das Feld nur korrekt ausfüllen, wenn es im Quelltext email oder mail heißen würde. Für undefinierbare Feldnamen greift offenbar eine andere Regel in der Logik der Spamskripte: Vorbelegte Felder werden beibehalten und so wie sie sind zurück gesendet. Das betrifft alle hidden-Felder und auch dieses mit einem »@« vorbelegte. Leere Eingabefelder (in meinem Fall das Namensfeld) füllen die Skripte dagegen mit einer Zufallszeichenkette, die keine Filterung auf meiner Seite zulässt (naja, zumindest nur eine auf statistischer Wahrscheinlichkeit beruhende).
Mein dritter effektiver Filter ist eine kleine JavaScript-Rechenaufgabe im onsubmit-Handler des Formulars. Die Spamskripte lösen das nie sondern senden wie zuvor immer die Vorbelegung zurück. Das macht es mir wirklich leicht. Zwar kann man (wie ich schon einmal betont habe) nie garantieren, dass alle echten Benutzer JavaScript aktiviert haben, aber offensichtlich kann man umgekehrt davon ausgehen, dass die Spam-Skripte niemals JavaScript ausführen. Ich kombiniere das: Enthält der Text irgend einen Link (also eine Prüfung auf
> 0) und die JavaScript-Aufgabe ist ungelöst, wird der Anwender in einer Bildschirmmeldung gebeten, mir zur Kontaktaufnahme erst einmal eine Nachricht ohne Weblinks zu senden.Was mich in den letzten Jahren aber am meisten erstaunt, ist, für was für absurden Mist die Kommentarspammer werben wollen. Beispiel gefällig?
HXhyMT <a href=\"http://pyjtbecatlpb.com/\">pyjtbecatlpb</a>, [url=http://wgkkicfdwaet.com/]wgkkicfdwaet[/url], [link=http://pounbbmckxyy.com/]pounbbmckxyy[/link], http://nvephewooogp.com/"Was um alles in der Welt ...? pyjtbecatlpb.com? Zufallszeichenketten als Domainnamen? Ernsthaft? Gut, man kann damit vielleicht noch den einen oder anderen Filter aushebeln, der die in Spammails und Kommentarspam beworbenen Domains sammelt und blockiert. Aber welcher normal denkende Mensch sollte jemals auf eine solche blau unterstrichene Buchstabensuppe klicken? Welche Suchmaschine zeigt solche ständig wechselnden Domainnamen überhaupt noch an? Kann es wirklich sein, dass den Spammern das alles egal ist und es sich trotzdem lohnt? Worauf basiert dieses Geschäftsmodell noch? Werbebanner für Pornoseiten? Wirklich? Mehr nicht?
- 2011-08-13 07:54
- Auch wenn mein Kommentar nicht nutzbringend erscheint: ich finde solche Berichte sehr interessant.
- Sven
Kommentare zu diesem Beitrag können per E-Mail an den Autor gesandt werden.