, ,

WordPress-Tutorial: Rechnen mit Spam [update]

letztes Update dieses Artikels: 29.06.2008 Die von mir gesammelten Infos zum Thema optimale Spambekämpfung mit WordPress 2 gibt’s zusammengefasst im folgenden Tutorial – auf dass sie viele Blogs mit wenig Aufwand spamfrei halten mögen! Ich werde diesen Text ab und an mit neuen, interessanten Plugins aktualisieren, schließlich ist und bleibt der Kampf gegen die Spammer-Bande ein Kopf-an-Kopf Rennen. Ganz besonders empfehlenswert finde ich zur Zeit das WP-SpamFree Plugin: es erspart Captchas und funktioniert äußerst zuverlässig.

Inhalt

  1. Cpt. Spam, der unerwünschte Besucher
  2. händische Freischaltung
  3. händische Freischaltung des 1. Kommentars
  4. Akismet Antispam
  5. Update 06/2008: WP SpamFree Plugin
  6. Captcha und Co.
  7. HashCash
  8. Trackback-Spam
  9. Beispielskonfiguration
  10. Tipp: Umbennen der comments-Datei
  11. Links zu WordPress Antispam-Plugins und weiteren Infos

 

1. Cpt. Spam, der unerwünschte Besucher

Spam tritt längst nicht mehr nur in Form von E-Mails auf – wer selbst ein Blog oder ein Forum betreibt, weiß um die digitale Pest. Hier am Blog etwa fischte das Akismet-Plugin innerhalb von drei Monaten 425 Spameinträge aus der Datenbank – das sind weit mehr als tatsächliche Kommentare. Je beliebter und populärer ein Blog, desto hartnäckiger die Versuche der Spammer.

Ganz hilflos ausgeliefert ist der Webmaster den Bösewichtigen des digitalen Raumes dann aber doch nicht – um unerwünschte Werbekommentare zu vermeiden, existieren eine Reihe von Verfahren mit spezifischen Vor- und Nachteilen. Eine Registrierung vorzuschreiben für alle Besucher, die nur mal schnell ihre Meinung zu einem Artikel abgeben möchten, erscheint übertrieben. Wer seinen Besuchern die Möglichkeit geben möchte, schnell und unkompliziert zu kommentieren und sich zugleich vor Spam schützen will, dem stehen verschiedenen Wege offen – WordPress selbst kann um diverse Antispam-Lösungen erweiteren werden. Für ein optimales Ergebnis mit möglichst wenigen „false positives“ (darunter versteht man Einträge, die irrtümlich als Spam gekennzeichnet werden) einerseits und einem Minimum an händischem Eingriff andererseits empfiehlt sich eine Kombination mehrerer Plugins. Im folgenden möchte ich die einzelnen Strategien kurz vorstellen sowie ihre Vor- und Nachteile erläutern: Kommentare und Hinweise sind natürlich sehr erwünscht!

2. Händische Kommentar-Freischaltung

Jeder Kommentar wird manuell freigeschalten. Dazu braucht man keine Plugins, WordPress in der Grundkonfiguration bietet diese Option an.

Vorteil: die einzige Methode, die 100%ige Sicherheit bietet.
Nachteil: jeder Kommentar erfordert einen persönlichen Eingriff und erscheint erst nach Freitschaltung am Blog.

3. Händische Freischaltung des 1. Kommentares

Nur der erste Kommentar muss händisch freigeschalten werden: WordPress bietet unter Options/Discussion folgende Einstellmöglichkeiten:

Before a comment appears:
* An administrator must approve the comment (regardless of any matches below)
* Comment author must fill out name and e-mail
* Comment author must have a previously approved comment

Deaktiviert man die erste und aktiviert die zweite und dritte Option via Checkbox, dann muss der Webmaster nur mehr den ersten Kommentar einer Person händisch freischalten. Kommentiert derselbe User mit dem gleichen Nicknamen und der gleiche E-Mail Adresse, wird der Kommentare sofort freigeschalten.

Vorteil: Da die E-Mail Adresse für andere Besucher nicht ersichtlich ist, spart diese Methode einiges an Handarbeit
Nachteil: Trotzdem erfordert jeder „Erstlingskommentar“ einen händischen Eingriff und erscheint nicht sofort auf der Seite. Außerdem muss bei dieser Methode die Eingabe von E-Mail Adresse und Usernamen zwingend vorgeschrieben werden.

4. Akismet Antispam

Akismet beruht auf kollaborativer Spamfilterung und zeigt sich lernfähig:
Verdächtige Kommentare verschiebt Akismet in eine „Spam Queue“, die über das WordPress Moderationsinterface zugänglich sind. False Positives sind selten, im großen und ganzen funktioniert das System sehr zuverlässig. Das Plugin ist in WordPress 2.0 enthalten – bevor man es nutzen kann, benötigt man zum Zugriff auf die zentralen Server einen sogenannten API-Key, der nach Registrierung gratis erstellt wird.

Vorteil: kollaborative Spamfilterung, perfekt integriert in WordPress, enthalten im Lieferumfang
Nachteil: Akismet sollte unbedingt aktiviert werden – die Serverperformance leidet nur unwesentlich.

5. WP-SpamFree

Einen völlig neuen Ansatz verfolgt WP-SpamFree: das seit einigen Wochen verfügbar Plugin nutzt mehrere Layer der Spamerkennung, kommt mit integriertem Kontaktformular – und das beste daran: Captchas und sämtliche Fleißaufgaben für die User entfallen. Ich habe WP-SpamFree parallel mit Akismet seit 2 Monaten im Einsatz und kann nur sagen: it works like a charm! Auf der Plugin Homepage gibt’s eine ausführliche technische Erklärung zur Funktionsweise; ich kann allerdings nur versichern, dass der Claim des Programmierers *keineswegs* übertrieben ist:

Comment spam has been a huge problem for bloggers since the inception of blogs, and it just doesn’t seem to go away. The worst kind, and most prolific, is automated spam that comes from bots. Well, finally there is an effective solution, without CAPTCHA’s, challenge questions, or other inconvenience to site visitors. WP-SpamFree virtually eliminates automated comment spam from bots, including trackback and pingback spam.

Einerseits beherrschen die meisten Bots kein JavaScript, andererseits kommen recht komplexe Erkennungsroutinen zum Einsatz – die, wie gesagt, derzeit perfekt funktionieren. Natürlich bleibt der Kampf gegen die Spammer ein Wettrennen; aber ich hoffe dennoch, dass WP-SpamFree Captchas (und sogar das weit weniger nervige Math Comment AntiSpam) auch weiterhin überflüssig macht.

6. Captcha und Co.

Als Captcha bezeichnet man die grafischen Texte, die zur Überprüfung in ein Eingabefeld eingetragen werden müssen. Typischerweise handelt es sich um ein Bild das aus verschiedenen Buchstaben und Ziffern besteht. Um automatisierte Spambots von menschlichen Benutzern unterscheiden zu können, muss der betreffende Texte entziffert und eingegeben werden. Für WordPress existieren diverse Captcha-Plugins – einfach zu installieren ist captcha!, der Autor selbst empfiehlt allerdings die Verwendung von HashCash (siehe unten).

Vorteil: erhöhte Sicherheit gegen Spambots, trotzdem sofortige Freischaltung erwünschter Kommentare
Nachteil: den besten Schutz bieten möglichst schwer leserliche Captchas – diese wiederum verringern die Usability auch für menschliche Benutzer: häufig fällt zB die Unterscheidungen zwischen dem kleinen „l“ und er Ziffer „1“ schwer. In Kürze werden Spambots jedoch zumindest einfache Captchas automatisiert entschlüsseln können.

Eine imho sehr elegante Methode, die Vorteile von Captcha mit wesentlich besserer Usability zu kombinieren, stammt von Michael Wöhrer: das Math Comment Antispam Plugin ist schnell eingebaut – eine paar Zeilen Code im Comments-Template, und schon muss zukünftig jeder Kommentator rechnen: das Ergebnis einer simplen Addition zweier Zahlen (ob ein- oder mehrstellig lässt sich via Optionen regeln) muss als Verifikation in ein zusätzliches Eingabefeld eingetragen werden. In Aktion zu bewundern ist es zB im Kommentarfeld zu diesem Artikel.

7. Hashcash

Eine neue Variante, gegen automatisierte Spambots vorzugehen, bietete HashCash. Das System beruht auf der Übertragung eines Keys durch chiffriertes Javascript mit dynamischen Ajax-Funktionen: WP Hash-Cash. Die Funktionsweise im Detail:

Every four hours, your blog picks a random large number (close to 32 bits). Whenever a visitor visits your permalink pages, an ajax call is made which retrieves some javascript. This javascript first decrypts itself, then executes itself again to retrieve the secret value, which it sets in the form. If a comment does not have this value, it is rejected. If a comment is rejected more than four times, the user is blocked for a specified period of time.

Das bedeutet allerdings, dass HashCash nur funktioniert, solange automatisierte Spam-Software Javascript nicht interpretiert. Die Lösung bietet also nur Schutz, bis der Feind technisch aufrüstet:

Regarding Spam, WP-HashCash and its derivatives are methods that will eventually fail in the future. This is because those methods can be made automatic (it’s possible to make a program which interpretes JavaScript, the same way current browsers do, and sends Spam; I’ve already seen 2 ways to do that in Internet). It’s only a matter of time.
Any test made to detect whether a user is a human or a machine, will need human intervention (like Captcha! currently does). Otherwise, the test method could be made automatic and, thus, programmable on a machine. So, only when current plugin (WP-HashCash) has been beaten, I will resurrect Captcha! again. [via boriel.com]

8. Trackback-Spam

Von Haus überprüft WordPress nicht, ob Trackbacks (siehe Was ist eigentlich ein Trackback?) Links zum Artikel enthalten, auf den sie Bezug nehmen. Freche Spammer benutzen daher gerne die Trackback-Funktion, um vollautomatische ihren Müll im Kommentarfeed abzuladen.
Ein simples Plugin macht Schluss damit: Michael Wöhrers Simples Trackback Validation überprüft je nach Einstellung, ob ein der Artikel, der den Trackback sendet, einen Link zum eigenen Blog bzw. zum ge-trac-backten Artikel enthält. Falls nicht, bleibt’s beim Spam-Versuch und der Trackback wandert direkt in den Müll.

9. Beispielskonfiguration

Hier am datenschmutz.blog hatte ich zuerst die Variante „händische Freischaltung des 1. Kommentars“ gewählt – allerdings ist mir dies immer noch zuviel Eingriff, außerdem will ich, dass die Kommentare sofort erscheinen. Daher habe ich mich für folgende Konfiguration entschieden:

Discussion-Options: User müssen Name und E-Mailadresse ausfüllen Update: geändert; Username und E-Mail sind freiwillig nur die math antispam Rechenaufgabe ist Pflichtfeld. Grund: anonyme Kommentare sollen ermöglicht werden.
Plugins: Akismet Antispam | Simple Trackback Validation | Math Comment Spam Protection | WP-SpamFree

Diese Konfiguration hat sich in den letzten 2 Monaten ganz hervorragend bewährt. Vorher hatte ich die Math Comment Rechenaufgabe im Einsatz – doch WP-SpamFree macht das Capture erfreulicherweise bislang überflüssig.

10. Tipp: Umbenennen der Comments-Datei

Über Avilon bin ich auf einen weiteren Tipp gestoßen. Oft sind die simplen Methoden die erfolgreichsten – und im vorliegenden Fall müssen lediglich eine Datei umbenannt und eine Zeile Code geändert werden. Die Vorgehensweise im Detail:

  1. wp-comments-post.php auf einen beliebigen Namen umbenennen
  2. anschließend den Verweis auf die betreffende Datei im File comments.php anpassen.

Die betreffende Zeile sieht in etwa so aus:


wp-comments-post.php musst mit dem neuen Dateinamen, zB. wp-spam-me-not.php, ersetzt werden.

Sinn der Sache: viele Spam-Bots sind fest auf den vorgegebenen WordPress-Standard Namen der comments-Datei programmiert. Da diese Datei nur an einer Stelle referenziert wird, funktioniert das Umbenennen schnell und schmerzlos. Allerdings handelt es sich wie meist nur um eine temporäre Lösung: sobald die Spammer dazu übergehen, ihre Bots nicht auf einen fixen Dateinamen zu programmieren, sondern den Filename aus dem Blog auszulesen, greift die Maßnahme nicht mehr. Bis dahin sind die zwei Minuten allerdings gut investierte Zeit, um eine ganze Latte an Spambots ins Leere laufen zu lassen.

11. Links zu WordPress Antispam-Plugins und weiteren Infos

Akismet Antispam (bei WordPress 2 aktiviert, erfordert API-Key (gratis erhältlich bei WordPress.org)
WP-SpamFree im WordPress Plugin-Repository
Simple Trackback Validation
Math Comment Antispam
HashCash
SpamKarma 2: umfangreich, detaillierte Optionen

Trackbacks

  1. 5 datenschmutz.net » WordPress-Tutorial: Rechnen mit Spam Pingback vom 8. Januar 2007, 2:28 Von Haus überprüft WordPress nicht, ob Trackbacks (siehe Was ist eigentlich ein Trackback?) Links zum Artikel enthalten, auf den sie Bezug nehmen. Freche Spammer benutzen

  2. WordPress-Tutorial: Rechnen mit Spam [update] [IMG]

  3. avilon.eu sagt:

    Recent Comments datenschmutz.net » Blogistan-Panoptikum Woche 2 2k7 on Legale Bittorrent DownloadsManuel on Zeit für was Schönes..datenschmutz.net » WordPress-Tutorial: Rechnen mit Spam on WordPress Comment Spam ohne Plugin verhindernritchie on WordPress Comment Spam ohne Plugin verhindernritchie on Legale Bittorrent Downloads

  4. Statistiktools für WordPress

    unter diesem Title hat der Datenschmutz-Blog einmal die Möglichkeiten der Statistischen Auswertungen eines Blogs zusammengestellt.
    Alle wichtigen externen Tools, wie zum Beispiel Google-Analystic, Statcounter aber auch die WordPress Plugins Stat Traq,…

  5. Statistik Plugins und zumindest einem externen Erbsenzähler scheint mir durchwegs sinnvoll, um allfällige Diskrepanzen zu entdecken – ohnehin sollte man bekanntlich keiner Statistik trauen, die man nicht selbst interpretiert hat. Weitere Themen: WordPress-Tutorial: Rechnen mit Spam Tipps und Tricks: WordPress und Feedburner

  6. Die 6 besten Gründe gegen das Nofollow-Attribut

    Der Nofollow-Attribut sollte einst Spammer von ihrer Tätigkeit abhalten – mittlerweile richtet der Linkblocker aber nur noch Kollateralschäden an.

  7. Kommen die Russen zum Spammen?

    Registrierungen von .ru E-Mail-Adressen häufen sich, Spammer missbrauchen datenschmutz Adressen als Absender… das E-Mail Protokoll ist leider völlig unzureichend gegen Manipulation geschützt.