Was macht der Blogger gegen Kommentarspammer? Meist Antispam-Plugins verwenden natürlich. Ein lange Zeit sehr beliebtes ist Akismet, das aber nicht ganz unproblematisch ist: So gibt es Datenschutzbedenken, weil alle Daten, die der Kommentator eingegeben hat, samt IP-Adresse an Akismets amerikanische Server übertragen werden – die diese dann bewerten und mit bekannten Spammern abgleichen, so funktioniert Akismet eben.
Ein Vorteil davon ist, dass auch manuelle Kommentarspammer so erfasst werden können (wenn sie nicht zu neu oder zu abwechslungsreich sind=, ein Nachteil, dass auch Unschuldige im Spam landen können (false positives), was auf meinem Blog ein paar Mal pro Monat vorkam – was für den Kommentator unschön ist, insbesondere weil er standardmäßig nur eine Seite ohne seinen Kommentar geliefert bekommt (wogegen ich letztes Jahr eine entsprechende Lösung eingebaut hatte), was alle ohne Akismet-Erfahrung verwirren könnte. Und wenn der Blogger zu selten oder zu unaufmerksam in seinen Spam-Ordner schaut, kommt der eigentlich gute Kommentar nie ans Tageslicht – und je öfter das vorkommt, umso mehr hält Akismet den Kommentator für einen Spammer. Thomas hat gestern auch darüber geschrieben.
Ein weiteres Problem mit aktuelleren Versionen von Akismet ist/war, dass die wp_commentmeta
-Tabelle mit u.U. Tausenden Einträgen zugemüllt wurde, in der das Plugin den Status der Spam-Abfrage für jeden Kommentar einträgt und selbst bei bereits gelöschten Spams nicht entfernte; letzteres müsste in der neuesten Version 2.5.3 aber behoben sein.
Ach ja, und Diskussionen über eine eventuelle Gebührenpflicht gab’s auch – zumindest Neu-Benutzer, die noch keinen API-Key haben, dürften auf diese Frage stoßen.
Wegen all dieser Dinge hatte ich mich nach einer Alternative umgesehen – d.h. eigentlich nicht groß umgesehen, denn Antispam Bee ist ja eh schon in fast aller Munde. Und die Biene macht ihren Job ganz ohne Inhaltsvergleiche auf einem Server sehr gut. Sie kann auch optional rein anhand der IP-Adresse mithilfe externer Dienste bestimmte Länder oder bekannte Spammer aussperren – was ich hier aber (noch?) nicht aktiviert habe. Deswegen erwischt sie manuelle Kommentarspammer aber nicht so gut, sodass man mitunter solche false negatives selbst löschen muss.
Vor ziemlich genau drei Wochen hab ich Antispam Bee installiert und hatte in dieser Zeit sieben solche nicht geblockten Spams (von fünf „Kommentatoren“). Vielleicht ein Grund, auch mal die angesprochenen IP-Prüfungen zu testen… Auf jeden Fall gab’s auch keinen false positive, und die automatischen Spams wurden sehr zuverlässig geblockt – ich bin also mit der Biene zufrieden und werde sie behalten.
Ich denke dann auch, ich kann nach der Testphase die Spams auch gleich löschen lassen, ohne dass die Biene sie in den Spam-Ordner schickt; dann wären dort nur solche, die wegen meiner Einträge in die WordPress-eigene Blacklist dort landen, was die Sache auch übersichtlicher macht (falls das mal vorkommt – ist selten, aber vorgestern hab ich dort z.B. eine IP einer (mutmaßlichen) Schule, von der eine Schulklasse hier blödelchatten wollte, eingetragen…).
Aber ein Problem muss ich noch ansprechen:
Antispam Bee und Ajax Comment Preview
Nun besteht ein wesentlicher Punkt in der Spam-Bot-Abwehr der Biene darin, den Namen des Kommentarfeldes zu ändern – es heißt nicht mehr comment
, sondern hat eine blogspezifische Zahl angehängt bekommen. (Die ID ist gleich geblieben, lässt sich also mit CSS wie sonst auch ansprechen.) Dadurch mag die Kommentarvorschaufunktion von Ajax Comment Preview aber nicht mehr1 – es sei denn, man ändert ein bisschen in dessen JavaScript-Code. Meine Lösung mag nicht die eleganteste sein – insb. weil sie an jedes Blog angepasst sein muss –, aber sie funktioniert:
Man ersetze in ajax-comment-preview.js
in der Funktion send
diese drei Zeilen:
if ( !t.data.comment || t.oldData == $.param( t.data ) ) { return false; // Blank || Last AJAX request was the same, so bail on this one. }
– sie befinden sich ab Zeile 28 direkt vor dem großen weit eingerückten Block, der mit jQuery.post
beginnt – durch diese:
if (t.oldData == $.param( t.data )) { return false; } // Last AJAX request was the same, so bail on this one. if (t.data['comment-12345']) t.data.comment = t.data['comment-12345']; //--ag fuer Antispam Bee if ( !t.data.comment ) { return false; } // Blank
Wobei ihr die gelb hinterlegte Zahl 12345
an beiden Stellen durch die bei eurem Blog verwendete ersetzen müsst – diese findet ihr ganz einfach im Quelltext (oder mit FireBug o.ä.) einer Seite mit Kommentarfeld raus, sucht dort am besten nach einer textarea
mit name="comment-
, das sollte in den meisten Themes reichen. (Und wenn’s dann noch nicht gleich funktioniert, dran denken, die Seite im Browser explizit neu zu laden, damit das neue JavaScript auch geladen wird.)
So, gibt’s noch Fragen, Anregungen und sonstige Meinungen zu meinem Code oder zu den Plugings allgemein? Nur raus damit, die Chance, dass ihr fälschlicherweise im Spam landet, sind geringer als früher.^^
- und andere Ajax-Plugins können auch Probleme haben [↩]
beetFreeQ1 16.02.2011 um 21:51 73 Kommentare
zitieren
Ich bin ja nach der ganzen Akismet-Diskussion auch zu AntiSpam Bee gewechselt. Generell war ich anfangs auch recht zufrieden, habe allerdings mittlerweile leider auch einiges an Mehraufwand im Gegensatz zu Akismet.
Zum Einen hat das Plugin teils wie bei dir ja auch vereinzelte Spam-Kommentare nicht erkannt. Andererseits habe ich aber auch schon den einen oder anderen False Positive gehabt. Für mich bleibt also vorerst nur, täglich meine Spam-Kommentare durchzuschauen, was allerdings bei den ja meistens extrem offensichtlichen Dingern nicht weiter schwer ist.
Ein wirklich blöder Fall hat mich aber schon fast dazu getrieben, doch wieder nach etwas anderem zu suchen. In den letzten Tagen hatte es nämlich ein Spambot extrem auf mich abgesehen. Der hatte täglich nachts etwa 90 Kommentare auf immer den selben alten Beitrag geschrieben und alle sind einfach so durch den Spamfilter gelangt. Nach dem ich das Problem drei Mal in Folge hatte und auch andere Einstellungen währenddessen (Einbindung des externen Dienstes „Project Honey Pot“ etc) nichts brachten, konnte ich den Kerl letztendlich nur durch einfaches Sperren der Kommentare auf dem Beitrag loswerden. Sowas ist dann schon ärgerlich. Vor allem weil man ja an sich auf Honey Pot selbst IP-Adressen melden kann, für die des Spambots aber angeblich keine Meldungen bekannt seien, obwohl es seit mehreren Monaten dort diverse Meldungen zu der IP gibt.
Naja, zum Glück hat es bisher nicht noch so ein Massenspammer auf mich abgesehen und daher bleibe ich vorerst bei AntiSpam Bee.
cimddwc 16.02.2011 um 22:32 6320 Kommentare
zitieren
Hmm, kam der Spambot immer von derselben IP? Dann würd ich die einfach in der htaccess blocken. Da stehen bei mir schon ’n paar von früher drin…
Das mit den False Positives muss ich dann wohl auch noch weiter beobachten. Mit der Bee-Standardmethode werden die nicht entstanden sein, denke ich – hattest du da schon Honey Pot und andere schärfere Kontrollen aktiviert?
beetFreeQ 21.02.2011 um 18:51 73 Kommentare
zitieren
Oh, hab deinen Kommentar erst jetzt entdeckt, da er im Spam gelandet war! Passt ja
Ja an die htaccess hatte ich auch gedacht. Ich war nur zu faul, nen FTP aufzumachen und mir die Syntax zum Blocken per htaccess raus zu suchen – der Bot hat aber auch schon aufgehört.
Die False Positives sind komischerweise alle aufgetreten, während Honeypot und die „schärfere Prüfung“ noch abgeschaltet waren. Seitdem ich sie u.a. wegen des Bots aktiviert habe, gab’s aber noch keine neuen False Positives.
Probleme hatte ich auch mit den Trackbacks, denn da wurden mir so einige als Spam markiert, die keiner waren. Die Trackback-Prüfung habe ich daher auch ausgeschaltet.
Crazy Girl2 18.02.2011 um 7:17 4 Kommentare
zitieren
Zur Spamabwehr nutze ich rein nur NoSpamNX, welches ausschließlich nur auf die Spambots greift. Das ziemlich zuverlässig, ohne False Positive, so dass man hier auch die Einstellung „blockieren“ kann und somit diese Kommentare gar nicht mehr zustande kommen. Mit einer Blacklist kann man zusätzliche manuell eintragen.
Ich habe auch schon von einigen gehört, dass sie Antispam Bee und NoSpamNX in Kombination nutzen, und das zusammen ziemlich erfolgreich sein soll
cimddwc 18.02.2011 um 10:22 6320 Kommentare
zitieren
NoSpamNX klingt auch interessant, ja. Könnte ich auch mal testen. Wobei’s auch interessant wäre zu sehen, ob die Kombination wirklich mehr schafft, d.h. ob manche Spambots nur auf eine der beiden Methoden reinfallen…
Crazy Girl3 18.02.2011 um 10:32 4 Kommentare
zitieren
Ich habe NoSpamNx bzw. den Vorgänger von Anfang an in meinem Blog aktiv. Bis dato haben es erst 2 Spambots geschafft, das Ding zu knacken. Und dann auch nur kurz. Bezüglich Spambots ist das wirklich äußerst effektiv.
Antispam Bee hatte ich nie im Einsatz, deswegen kann ich zum Vergleich nichts sagen. Ich habe es aber in einigen Blogs immer mal wieder gelesen, dass diese beiden Plugins kombiniert eingesetzt werden.
cimddwc 18.02.2011 um 11:41 6320 Kommentare
zitieren
Da grad ein Spambot ein paar mal durchgekommen ist, hab ich mal schnell zusätzlich NoSpamNX installiert.
Crazy Girl4 18.02.2011 um 15:07 4 Kommentare
zitieren
NoSpamNX kannst Du ruhig auf blockieren stellen und ich bin schon gespannt, was Du sagst. Bei mir steht da nur …hat NoSpamNX 7555 dumme Spambots gestoppt…
cimddwc 20.02.2011 um 11:15 6320 Kommentare
zitieren
NoSpamNX steht jetzt auch auf blockieren. Und ich hab die Zahlen von Freitag und jetzt verglichen: NoSpamNX ist mittlerweile bei 245 „birdbrained spambots“, wie’s in der englischen Version vogelbeleidigend heißt, und ist damit um 19 mehr gestiegen als Antispam Bee im selben Zeitraum – das klingt danach, dass die Biene diese 19 durchgelassen hätte (und beide vmtl. diejenigen zählen, die sie beide erkannt haben).
(Oder korrekterweise: der Unterschied in der Erkennung liegt bei 19, könnte ja sein, dass die Biene X gefangen hat, die an NoSpamNX vorbeikamen, und umgekehrt 19+X…)
Allerdings kam auch mit NoSpamNX ein weiterer der o.a. Sorte durch. Manuell sah der auch nicht aus – vielleicht schafft’s der Bot, das display:none zu erkennen, das offenbar seit Version 3.17 wieder anstelle der CSS-Datei verwendet wird. Naja, wenn das wieder vorkommt, ändere ich das manuell…
Ich lass die Kombination jetzt jedenfalls mal so laufen.
Thomas5 20.02.2011 um 12:28 101 Kommentare
zitieren
Also die Verbindung NoSpamNX und AntiSpamBee arbeitet bei mir optimal. Wenn pro Woche tatsächlich 1 Spamkommentar durchkommt ist das wirklich viel. Da wird alles verschluckt was so kommt OHNE dass es allerdings zu guten Kommentaren kommt die verschwinden. Anders also wie bei Akismet. Nur sehr selten landet jemand im Spam wo ich ihn dann aber nicht unter 476 anderen rausfischen muss. Alles in allem bin ich hoch zufrieden damit. Wenn jetzt mit WP 3.1 die PB/TB Angelegenheit noch so gut funktionieren würde wäre alles spitze.
cimddwc 20.02.2011 um 13:41 6320 Kommentare
zitieren
Mit WP 3.1 schon? Du bist aber optimistisch!
Thomas6 20.02.2011 um 15:46 101 Kommentare
zitieren
Du nimmst mir aber auch jede Hoffnung
Crazy Girl7 20.02.2011 um 17:49 4 Kommentare
zitieren
@Thomas: Da die Problematik der Trackbacks/Pingbacks/Pings meist am Memory Limit des Servers scheitert werden wir auf eine diesbezügliche WP-Lösung wohl eher warten bis wir schwarz werden
Thomas8 20.02.2011 um 18:50 101 Kommentare
zitieren
Wollen wir das? Hä? WOLLEN WIR DAS???
Pingback: Ja gut, aber … » Akismet raus, Antispam Bee rein9 11.05.2011 um 22:52
Hody10 02.05.2012 um 9:50 1 Kommentar
zitieren
Was ist denn z.B. mit IntenseDebate, braucht man damit dann überhaupt noch einen anderen Spamfilter wie Askismet oder AntispamBee?
cimddwc 02.05.2012 um 10:12 6320 Kommentare
zitieren
Hmm, Erfahrung hab ich damit nicht, aber wenn sich ein anderer Anbieter wie IntenseDebate um die Kommentare kümmert, wird man selber kaum einen Spamfilter brauchen, wenn’s um manuelle Kommentare geht.
Automatische „Kommentare“ von Spambots und Trackbacks/Pingbacks sind aber evtl. ein anderes Thema; solange IntenseDebate & Co. keine Umleitung per WP-Plugin bieten, wirst du wohl dafür einen Spamfilter brauchen – oder sie besser gleich deaktivieren. Dazu sollte es aber Hinweise/FAQs bei IntenseDebate & Co. geben, denke ich.