Kein Comment Spam mehr

Ein Traum am Blog wird Wirklichkeit – Ich bin noch immer Spamfrei. Selbst die Akismet-Queue ist seit meinem Eingriff leer! Für alle Anderen, die das Problem noch in den Griff zu bekommen versuchen, hier eine kleine Anleitung, welche hier zum Sieg verholfen hat:

Wer hier eine Anleitung nach 1,2,3 erwartet, liegt bei diesem Thema falsch, da der erste Schritt immer aus der Beobachtung der Lage besteht, da Spam – so seltsam es auch klingt – lokale Unterschiede birgt. Meine Anleitung hier bezieht sich nicht nur auf WordPress, sondern sollte auch ohne Probleme auf andere Systeme angewendet werden können;

Spam ist eine Breitband-Plage, welche meist von Botnetzen abgesetzt wird. Um auf möglichen Systemen ‚gute‘ Chancen zu haben, werden alle Formularfelder, die nur irgendwie erreicht werden können und der Referer befüllt. Mit diesem Weg umgeht der Spammer das Problem der Pflichtfelder.

Ein guter Ansatz ist zum Beispiel ein Feld durch CSS zu verstecken und es als leeres Feld zu deklarieren. In den meisten Fällen wird auch dieses Feld mit Schrott gefüllt sein, was für den Kommentar die rote Karte bedeutet. Von der Verwendung von JavaScript rate ich aus folgenden Gründen ab: JavaScript wird am Client ausgeführt – wir wissen somit nicht, was da wirklich läuft und ob es abgearbeitet wird. Ein Weiterer Grund ist, dass manche Spambots auch schon JavaScript interpretieren können.

Sehen wir uns die Breitbandbehandlungen von Spammern doch genauer an: Die Freitexte enthalten oftmals BBCode, um bei Foren zu punkten. Wer also nicht [link] oder [b] auf seiner Website interprätiert, kann bedenkenlos filtern. In PHP kann der Ansatz folgendermassen aussehen:

if (preg_match(‚|\[url(\=.*?)?\]|is‘, $comment)) die(‚BBCode is not interpreted here.‘);

Anstelle von die() kann man auch jede andere Funktion aufrufen, welche mit dem Spam kurzen Prozess macht. Bei BBCode macht es Sinn, eine Meldung auszugeben, da es manche Leute gibt, die die kleinen Anweisungen neben Formularfeldern nicht lesen können.

Ein weiteres Kennzeichen von Spam können diverse Worte sein, welche zur Zeit ‚in Mode‘ sind. Dazu zählen Dauerbrenner wie ‚casino‘ oder ‚viagra‘ genauso wie diverse Aktien. Ein Filter auf diesen Worten ist nicht immer sinnvoll, da er sehr schnell umgangen werden kann. Trotzdem kann man damit einige Glückstreffer landen.

Comment Spam hat verdammt viele Links. Ich habe kaum Spam-Kommentare gesehen, welche nicht mindestens 10 Links im Nachrichtentext durch die Welt schreien. Die Anzahl der Links in einem Text ist leicht zu zählen, wenn wir von HTML Links ausgehen. Ich zähle alles was href und http(s) hat, als Link. In PHP könnte ein Ansatz so aussehen:

$linkCount = preg_match_all(„|(href\t*?=\t*?[‚\“]?)?(https?:)?//|i“, $comment, $out);

Ab einer gewissen Anzahl von Links, lasse ich auch hier den Kommentar im Datennirvana verschwinden. Eine entsprechende Nachricht an den Autor des Kommentars ist auch in diesem Falle nicht verkehrt, da ja Bots diese nicht auswerten und menschliche Schreiber reagieren können.

Trackbacks als Kommunikation zwischen Blogs werden auch gerne missbraucht. Sie lassen sich eher schwierig überprüfen. Mein Ansatz geht in die Richtung, die entsprechende Webseite einmal automatisch anzusurfen um zu sehen, ob diese auch meine Adresse irgendwo im Quelltext verlinkt hat. Ist dies nicht der Fall, gibt es auch keinen Eintrag.

Diese Ansätze lassen sich im Falle von WordPress sehr gut in Plugins verpacken. Manche davon sind schon von anderen Autoren geschrieben worden, andere habe ich hier realisiert und helfen hier schon recht gut. Modifikationen an CMS Systemen vermeide ich grundsätzlich, da sie bei jedem Update nachgezogen werden müssen und oftmals in Vergessenheit geraten können.

Author:

3 thoughts on “Kein Comment Spam mehr”

  • Also there is another two good anti-spam ideas. It works for forums as far as I read the comments.
    It consists over separating email into login and server parts over two separate boxes and adding a human-answerable quiestion (like „If you’re not a bot paste this text backwards into the box below“ ;]).
    Thats for registration, but adding those for comments should not be a big problem.
    I’m not quite sure how good they are, but phpBB (also Przemo version) has ready mods and I’m going to try them out soon.

  • OK, I’ve just instaled the email separation.
    As far as it will do it’s job I’ll won’t bother with the second.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Notify me of followup comments via e-mail. You can also subscribe without commenting.