maettig.com

Thiemos Archiv

Kommentarspam in meinem Blog. Dieses Mal von der extremen Sorte: Der Zugriff erfolgte durch ein Skript und hinterließ in meinen Logfiles nur eine einzige Zeile. (Zum besseren Verständniss: Normal wären zwei Zeilen – eine für den Aufruf des Kommentarformulares, eine für das Absenden desselben.) Und das, obwohl mich meine Eigenentwicklung bisher erfolgreich vor dem Moveable Type-Problem bewahrte. Aber so lange sich die Spammer so blöd verhalten, stellt das alles kein Problem dar.

Schritt 1: Ich verbiete Links, bei denen <A HREF=…> groß geschrieben ist. Diese Schreibweise ist mit XHTML (das ich noch nicht einsetze, auf das ich aber hinarbeite) ohnehin verboten.

Schritt 2: Ich verbiete Kommentare mit mehr als 10 Links. Der reguläre Rekord liegt bisher bei 8, normal sind 1 oder 2. Viele Weblog-Anbieter setzen schon seit einer Weile einen solchen Filter ein. Das Limit ist dort im Allgemeinen auf 5 eingestellt.

Schritt 3: Im Fehlerfall wird die Reaktion des Skriptes um 10 Sekunden verzögert. Reguläre Kommentierende haben diese Zeit, Spammer nicht. (Die Tatsache, dass Spammer nach dem Fire-and-forget-Prinzip arbeiten, lasse ich mal außer Acht.)

Schritt 4 (noch nicht realisiert): Beim Aufruf des Kommentarformulares wird eine Session gestartet oder einfach ein Cookie mit einem eindeutigen Schlüssel gesetzt. Beim anschließenden Absenden des Formulares wird der Kommentar nur akzeptiert, wenn der Schlüssel mit dem wenige Minuten vorher generierten übereinstimmt. Dieser Mechanismus macht sich die Tatsache zu Nutze, dass kommentieren grundsätzlich zwei Requests erfordert (siehe oben).

Die Spammer werden zwar auch das irgendwann mit ihren Skripten simulieren können, aber vorerst scheint mir das eine nahezu ideale Lösung zu sein. Oder blockiert man damit versehentlich reguläre Kommentare (wenn man von abgeschalteten Cookies einmal absieht – Sessions funktionieren zur Not auch ohne)?

Siehe auch PHP-FAQ.

Mit Apeform hätte man den Vorteil, daß die Namen der einzelnen Felder keinen semantischen Sinn ergeben (durchlaufend nummeriert). Jedoch kann man vom Typ Rückschlüsse ziehen. Ein Formular in einem Blog hat ein textarea und in der Regel 2 oder 3 input-Felder von Typ Text. Die Reihenfolge der input-Felder ist auch fast immer konstant: zuerst der Name, dann die Kontaktdaten auf. Mein Fazit: eigentlich werden auch kryptische Namen nicht wirklich schützen können.

Also kann man mit hide-Parametern auch Schlüssel übertragen. Das muß ja nicht einmal mit Cookies gemacht sein. Nur würde ein Spammer dann alle hide-Felder nehmen und 1:1 wohl wieder absenden ...

Also bliebe vermutlich nur noch die Variante: eine kleine Grafik mit einer Zufallszahl.

Absolut sicher scheint nur die Variante zu sein: man nimmt einen Screenshot von 9live - und der Kommentierende darf erst zählen, wie viele Ziffern da drauf enthalten sind! ;-)

zum Abschluß noch eine Idee: bilde eine "Grauzone". D.h. Beiträge, die mystisch aussehen, nicht komplett ablehnen, sondern sie müssen erst freigeschalten werden ...
René
Ich glaube nicht, dass sich die Spammer überhaupt für die Namen der Formularfelder interessieren. "text", "fullname", "email" und "submit" sind nicht wirklich vielsagend, oder? Ein <textarea> und ein <input type=submit> würde mir genügen, wenn ich ein Spamskript schreiben würde. +++ Der hidden-Parameter darf natürlich keinen statischen Schlüssel enthalten (damit kommen die Spammer inzwischen tatsächlich schon klar), sondern einen dynamischen, der an eine Session gebunden ist. Wie gesagt: Auch das lässt sich umgehen, verursacht aber (so weit ich das sehe) keinerlei "false Positives". +++ Grafische Captchas finde ich gräßlich. +++ Die Idee mit der Grauzone ist sehr, sehr gut. Ich bin sicher, dass wir darauf noch zurückgreifen werden.
Thiemo
Warum ich niemals Captchas einsetzen werde.
Thiemo
ist doch eh alles für die katz! auf seiten auf denen es sich lohnt wird mittlerweile sogar händisch gespammt wenn die "sicherheitsvorkehrungen" zu gut sind.
machen wahrscheinlich irgendwelche armen asiaten für einen hungerlohn
andi
noch eine Idee: eine Mindestzeit für das Betrachten der Seite fordern. Wer binnen 10 Sekunden das Formular absendet -> abblocken!
René
Das ist eine logische Verfeinerung der Idee. Wenn Spammer etwas nicht haben, dann Zeit.
Thiemo

Kommentare zu diesem Beitrag können per E-Mail an den Autor gesandt werden.

[ ← Zurück zur Übersicht ]

Impressum & Datenschutz