[WordPress] Massnahmen gegen Kommentarspam
Spam ist wohl das meist gehasste Thema im Internet.
Auch vor Blogs, bzw. WordPress machen die Spammer keinen Halt und müllen alles gnadenlos zu bis hin zu regelrechen Denial of Service Angriffen auf die Webserver/SQLServer.
Massnahmen gegen Spam gibt es viele Verschiede, genauso wie es verschiedene Arten von Spam gibt.
Ich werde mit diesem Beitrag versuchen dieses Thema zusammen zufassen und Möglichkeiten gegen Spam, anhand der Erkenntnisse welche ich gesammelt habe, aufzuzeigen.
Und damit meine ich nicht wie man Spam einfach nur abfängt, sondern ganz einfach versucht zu unterbinden.
Arten des Spams in Blogs
Ich unterscheide Blogspam in 3 Klassen:
- Automatischer Kommentarspam
Die Spamkommentare werden von den Bots via direktem Post-Aufruf der entsprechenden Datei, bei WordPress wp-comments-post.php, abgesetzt. - Automatischer Trackbackspam
Ähnlich wie beim automatischen Kommentarspam, der Spam wird direkt mittels Post auf die Datei abgesetzt. - Semiautomatischer Kommentarspam
Bei dieser Form wird nicht direkt die Datei angesprochen, aber das Formular im Blog automatsch gefüllt und abgesannt.
Die automatisierte Form kommt am häufigsten vor, sprich Spambots, bzw. ganze Botnetze, grasen diverse Listen ab und versuchen ihren Müll abzuladen. Vermutlich kommt man recht schnell auf diese Listen wenn man nicht näher bekannte Pingdienste anpingt. Habe damals auch irgendeine Liste gefunden und pauschal mal bei mir Übernommen.
Aber genauso gut kann man durch Zufall von diesen Bots heimgesucht werden. Und wenn dem so ist hilft nix mehr, ausser diverse Massnahmen.
Plugins gegen Spam
Es gibt viele AntiSpam-Plugins für WordPress, einige davon zähle ich kurz auf:
- Generelle Antispamplugins
Diese Plugins überprüfen alle Kommentare und Trackbacks entweder nach gewissen Mustern oder anhand einer externen Datenbank. - Akismet
Der Quasi-Standard welcher mit WP schon mitgeliefert wird.
Alle eingehenden Kommentare und Trackbacks werden mit einer externen Datenbank abgeglichen und müssen dann im Backend entweder gelöscht werden oder aus der Akismetspamliste wieder herausgefischt werden, falls Akismet einen Kommentar als False-Positive erkannt hat. - SpamKarma2
SK2 klassifiziert eingehende Kommentarte anhand diverser Regeln und verhindert so Spam im Blog.
Viel mehr kann ich zu SK2 nicht sagen da ich dieses nur einmal kurz getestet habe und nicht wirklich begeistert war wegen der mannigfaltigen konfigurationsmöglichkeiten. Jedoch schwören viele auf dieses Plugin. - Automatische Botfallen
Botfallen dienen dazu diverse Bots, z.B. Spambots oder Contentgrabber, schon im Vorfeld von der Seite abzublocken. - Bad Behavior
BB überprüft eingehende Verbindungen anhand diverser Kriterien und entscheidet dann ob die Anfrage von einem Bot kommt und sperrt diesen dann aus. - Bot-Trap
Bot-Trap ist BB ähnlich und filtert Bots anhand von UserAgents und IP-Sperrlisten.
Bot-Trap hatte ich einige Zeit im Einsatz, jedoch war mir nie wohl bei dem Gedanken das man kaum Einfluss auf die Sperrlisten hat und somit schon mal Besucher ausgesperrt werden können. Auch wenn im Falle des Sperrens ein Captcha zur Verfügung gestellt wird. - Interaktive Plugins (Captcha)
Bei einem Captcha wird der Besucher/Kommentator aufgefordert eine meist sinnlose Buchstabenkombination aus einem Bild abzulesen und in ein Feld zu tippen. Erst wenn dies richtig geschehen ist wird der Kommentar ins System geschrieben. Ist die Eingabe falsch wird der Kommentar nicht angenommen. - Silver’s Captcha
Einfacher Vertreter des Bild-Captchas - Math Comment Spam Protection
Mein derzeit eingesetzes Captcha. Der Besucher wird dazu aufgefordert eine simple Rechenaufgabe zu lösen um zu beweisen das er kein Bot ist. Meiner Meinung nach einfacher für den Besucher als manch verdammt schwer zu entzifferndes Bild-Captcha. - Captcha This
Dieses Captcha habe ich noch nicht getestet, soll aber recht gut sein, da man viele verschiede Fragen stellen kann und nicht nur stupides Buchstaben abtippen. - Trackback-Plugins
- WP-Hardened Trackbacks
Dieses Plugin generiert für jeden Trackback eine eigene URI mit einer festgesetzen Gültigkeitsdauer, sprich man muss den Link anklicken um die URI zu bekommen und hat dann X Minuten Zeit seinen Trackback abzusetzen.
Ein recht klasse Ansatz, aber leider funktioniert dieses Plugin nicht, bzw. bei mir nicht, und scheint auch nicht mehr weiter entwickelt zu werden. - Simple Trackback Validation
Hier wird überprüft ob vom Trackbackursprung ein Link zum Beitrag verweist, wenn nicht wird der Trackback in die Spamliste gehauen.
Ich setze hier Akismet und Math Comment Spam Protection ein und bin recht zufrieden.
Trotzdem bestand immer noch das Problem das ich täglich die hunderte Spams durchschauen musste welche in Aksimet aufliefen.
Die Lösung
Und hier kommt die Holzhammermethode ins Spiel.
Dazu möchte ich ein paar Gründe aufführen warum ich dies so mache:
Viele schreiben das Akismet wunderbar seinen Dienst verrichtet, wofür dann noch mehr machen? Macht Akismet ja auch, jedoch wenn teilweise ca. 300 Spamkommentare pro Stunde auflaufen habe ich einfach keine Lust seitenweise Spamkommentare durchzuschauen ob nicht doch ein Echter mit reingerutscht ist. Von der erzeugten Last auf dem Server möchte ich garnicht sprechen.
Wir entziehen den Bots einfach ihre Grundlage! Die Bots sprechen nämlich meist direkt die entsprechenden Dateien an (wp-comments-post.php & wp-trackback.php)
ACHTUNG! Bitte vor dem Ändern ein Backup machen
- Schritt 1: wp-comments-post.php umbenennen
Wenn man keine weiteren Plugins wie z.B. WP-PDA einsetzt muss man einfach nur die wp-comments-post.php umbenennen in einen beliebigen Namen.
Diese wird nur ein einziges Mal aufgerufen, nämlich in der comments.php des Themes.Suche nach <em><strong>wp-comments-post.php</strong></em> und ersetze dieses durch den geänderten Dateinamen.
Mit dieser einfachen Änderung haben wir die Standard-URI für das absenden der Kommentare ans System geändert und somit den Bots eine ihrer Grundlagen geklaut und somit schon mal einen Teil Spam erschlagen.
- Schritt 2: wp-trackback.php umbenennen
Damit diese Datei umbenannt werden kann sind mehrere Änderungen an Core-Dateien notwendig. - wp-trackback.php umbenennen
- wp-includes/template-loader.php
Suche nach <em>include(ABSPATH . ‘/wp-trackback.php’);</em> und ersetze dort den Dateinamen. In dieser Datei muss der Dateiname 2 mal ersetzt werden. I.d.R Zeile 11 & 68. - wp-includes/comment-template.php
Suche nach <em>$tb_url = get_option(’siteurl’) . ‘/wp-trackback.php?p=’ . $id;</em> und entsprechend ändern. - wp-includes/comment-template.php
Suche nach <em>$tb_url = trailingslashit(get_permalink()) . user_trailingslashit(’trackback’, ’single_trackback’);</em> und das ‘trackback/’ z.B. in ‘trackback_ohnebots/’ ändern.
Dieser Schritt dient dem Ändern der Angezeigten Trackback-URI - wp-includes/rewrite.php
Suche nach <em>$trackbackregex = ‘trackback/?$’;</em> und analog dem vorherigen Schritt ändern. - Zu guterletzt muss man im Backend einmalig die Permalinkstruktur aktualisieren.
Nun haben wir den Bots den zweiten Nährboden geklaut, die Standard-Trackback-URI.
Dies hat zwar zum Nachteil das normale Trackbacker nun immer die URI nachschauen müssen und nicht einfach ein /trackback/ dahinter schreiben können, aber wie ich Anfangs geschrieben hab, man muss abwägen.
Fazit
Liesst sich viel Aufwand, und es wurde auch schon gesagt das nach jedem Update diese Änderungen durchgeführt werden müssen. Dies will ich keines Falls anzweifeln, aber das Ergebniss kann sich meiner Meinung nach sehen lassen….0 Spam in Akismet. Und dies schon seit Mitte Mai, da war das letze WP-Update. Updates für WordPress kommen aber nicht so oft das man jede woche die Änderungen im Code nachpflegen muss. Und wenn man es einmal gemacht hat, gehts beim zweiten Mal doppelt so schnell
Und es nochmal klar zu sagen, auch wenn Akismet und Math-Captache prima den Spam abfangen, ich muss ihn trotzdem sichten um FalsePositives auszuschliessen und bei Spamprimetimes mit 100 Stück pro Stunde kann dies ganz schnell in viel Arbeit umschwenken.
|
|
Verwandte Artikel |
| Trackback-Url |





































und seit ich das gemacht hab, is bei mir auch spam-leer!
dankeeeeeeeee!
Naja, du hast aber nur den Schritt mit den Trackbacks gemacht, oder das andere noch selbstständig?
neee, nur das wobei du mir gehilft hast…
Spam-Abwehr-Kommando-Fazit…
…
Bei mir reichen Math-Plugin und Akismet um den Blog von SPAM frei zu halten.
Die Holzhammermethode halte ich für den normalen Bloguser zu aufwendig, gerade wenn nach jeder Version dies erneut gemacht werden muss.
@ knut: aber du bekommst spam, der dann in akismet wandert.
ich bekommen KEINERLEI spam mehr. nix. muss auch nix mehr löschen.
*zurücklehn*
@Prinzess: Ich bin (zum Glück) auch SPAM-Frei ! Früher hatte ich auch rund 80-100 SPAM am Tag.
Meiner Mutter wollte ich z.B. das mit dem Code bearbeiten nicht zumuten.
Meine Methoden sind durchaus simpler, mit selbem Ergebnis. Ich gehe dabei von folgender Situation aus:
Spam (ob automatisch oder nicht) verwendet – um eine moeglichst grosse Landschaft an CMS Systemen abzudecken bbCode und massenhaft Links. Ein simples WordPress PlugIn loest das Problem. Es sucht nach [link] (bbCode). Bei Fund wird der Kommentar mit einer freundlichen Meldung abgewuergt;
Wenn HTML Links verwendet werden, wird einfach mal gezaehlt wie oft http(s) und href vorkommen. Uebersteigt dies ein normales Mass (3 Links) dann wird der Kommentar ebenfalls abgewuergt.
Trackbacks sind im weitesten Sinne auch nur Kommentare und werden bei mir nach dem selben Schema abgehandelt. Seit dem Zeitpunkt bin ich spamfrei.
Eine weitere Möglichkeit Spam zu erkennen findet man hier.
Mit bot-trap habe ich auch keine so guten Erfahrungen gemacht. Die gesperrten Bereiche sind zu gross. Besonders aergerlich: Von vielen Serverbereichen aus laesst sich die Matheaufgabe nicht freischalten; da helfen auch keine Mathe-Kenntnisse. Scheint ein technisches Problem zu sein.
Kompliment an diese Seite. Hier wird Spam abgewehrt, ohne dass der normale User behindert wird.
Gitasoli, danke für das Lob.
Aber leider habe ich ja auch ein Math-Captcha eingebaut, auf welches ich leider nicht verzichten kann.
Habe es mal ohne getestet, aber der Spam ging sofort wieder los
BotTrap hatte einen guten Ansatz, aber ich persönlich finde die “Macher” etwas strange, und auch an vernünftiger Unterstützung hat es in meinen Augen gehapert. Ergo habe ich mich nach was anderem umgesehen
[...] Weitere Links zum Thema: Ein Anti-Spam-”Trick” für WordPress Massnahmen gegen Kommentarspam [...]
[...] #1: Gerade auf der Suche nach weiteren Spamopfern fand ich diesen Artikel: Metty nennt es liebevoll die “Holzhammer”-Methode und sie wird funktionieren und ist [...]