Inhalt

09.10.2007  ·  Dirk Schürjohann zu den Themen Spam, Usability und WordPress. Kommentare 3

Stirb langsam: SPAM und der barmherzige Samariter aus Ebenholz

Jäger jagen Beute gern, der Schlachter fängt das Schwein, Katzen und Mäuse tun’s auch und du bist auch bald mein.

- Stirb Langsam

In einem Blog, das nicht mit prominenter Blogsoftware wie WordPress, sondern mit einem sehr rudimentären Skript läuft, das von Haus aus über keinerlei Anti-Spammaßnahmen verfügt, hatten wir vor einiger Zeit eine Timestamp-Prüfung nachgerüstet. Sie funktioniert etwa so:

  1. Beim Aufruf des Artikels samt Kommentarformular wird der erste Timestamp initialisiert.
    Es gibt eine obligatorische Vorschaufunktion, deshalb ist nur der Preview-Button sichtbar, während der Submit-Button zwar existiert, jedoch (mit Vorschau-Hinweis innerhalb des HTMLs) ausgeblendet wird.
  2. Nach Absenden des Formulars wird der Timestamp ausgewertet: innerhalb von 10 Sekunden abgeschickt ergibt einen Hinweis auf zu schnelles Senden und ruft das erste Formular mit altem Timestamp erneut auf.
    Wird länger als 30 Minuten fürs Absenden benötigt, erscheint das erste Formular erneut, kann jedoch nicht weiter verwendet werden, ist also »verbrannt«. Es wird ein Hinweis darauf gegeben, den Kommentartext in die Zwischenablage zu übernehmen und die Seite manuell neu aufzurufen, um danach in einem frischen Formular posten zu können.
    Wird gleich beim ersten Mal der Submit-Button anstelle des Preview-Buttons gedrückt – was für den Nutzer kaum möglich sein sollte, für den Spambot jedoch typisch ist –, ist das Formular ebenfalls verbrannt.
  3. Beim Aufruf der Vorschau wird der zweite Timestamp initialisiert und beschränkt sich wie bereits der erste Timestamp auf ein Zeitfenster: ein Absenden nach mehr als 30 Minuten führt wie zuvor zu einer Sperre des gesamten Formulars.
    Zudem wird beim endgültigen Submit auch der erste Timestamp nochmal geprüft und hatte dann insgesamt 60 Minuten Zeit, um einzuwirken.

Die Maßnahme ist also sehr einfach: ein Kommentar wird nur dann angenommen, wenn er den Weg über die Vorschau gegangen und dabei in einem festgelegten Zeitfenster geblieben ist.

Simon der Simpel sprach zu Bäcker Pimpel, gib mir deine Kuchen fein, sonst schlag ich dir den Schädel ein.

- Stirb Langsam

Und jetzt die Erfahrung damit nach etwa 6 Monaten Aktivität als einzige Maßnahme (!) gegen Kommentarspam in einem überaus gut besuchten Blog: kein einziger automatisierter Spamkommentar ging durch — Mag das mal jemand als WordPress-Plugin umsetzen? ;)

Links zum Thema:

  1. Sichere Formulare – Teil 4: Spam-Bots maßregeln (Rene Schmidt)
  2. Ich schicke Spam.

Kommentar hinterlassen  //  RSS-Feed mit Kommentaren zu diesem Beitrag Feed

3 Kommentare

  • 1

    Dominic 

    Hm. Die Idee des Timestamping und zu schnelles Absenden zu unterbinden finde ich an sich einen guten Ansatz.

    Über 30 Sek. als zu schnell anzusehen — Zeit, die man erstmal braucht, um den Artikel zu lesen und einen Kommentar zu schrieben, ist mir etwas kurz und die Methode vom Copy&Paste für den Durchschnittsuser zu kompliziert und auch nicht gerade benutzerfreundlich.

  • 2

    Dirk Schürjohann (Autor)

    Dominic, danke fürs Feedback.

    Die 30 Minuten lassen sich auch auf 60, 120, 300 oder mehr Minuten verlängern. Es geht nur darum, einen Submit von außen über gespiderte Formulare zu verhindern, und dabei sind die Zeitfenster der Spammer noch recht groß.

    Die Copy&Paste-Methode ließe sich natürlich auch komfortabler machen. Zum Beispiel mittels Session und automatischem Redirect auf ein frisches Formular, das dann vorausgefüllt würde. Wichtig ist nur, dass das alte Formular dauerhaft verbrannt ist, wenn die Zeit abgelaufen ist.

  • 3

    Oliver 

    Sehr interessanter Ansatz, gibts hierzu inzwischen ein Plugin?

Kommentar hinterlassen