Akismet vs. Antispam Bee

How to fight off comment spammers? With a anti-spam plugin, of course. Akismet is quite popular (it’s included with WordPress, after all), but it’s got its drawbacks: It sends all data to its servers – after all, that’s how it works –, which may be a problem if you’re concerned about privacy; despite quite a goot job of detecting manual comment spam, it may cause false positives, i.e. good comments that falsely get treated as spam; newer versions fill(ed) the database with statistics even for deleted comments (latest version probably fixes this); and there are discussions about Akismet no longer being free (especially if you’re new and need an API key).

So I instead chose Antispam Bee now, which does its job very good without sending all data around, etc. (though it’s got options for IP filtering by country and more), and I’m quite satisfied with it, so it will stay.

I elaborated more on all this in the German version of this post (see link above the headline); major reason for writing an English version at all is one more thing about a plugin conflict that might be interesting to non-German-speakers:

Antispam Bee and Ajax Comment Preview

One of the Bee’s most important methods for combating spam bots is changing the name of the comment entry field – it’s no longer called comment but got a number added. (The ID is the same, so no change in accessing it with CSS.) However, this causes Ajax Comment Preview to malfunction – unless you change a bit in its JavaScript code. My solution may not be the most elegant – especially since it has to be adapted for each blog – but it works:

Replace in ajax-comment-preview.js in function send these three lines:

if ( !t.data.comment || t.oldData == $.param( t.data ) ) {
    return false; // Blank || Last AJAX request was the same, so bail on this one.
}

– they are at line 28 directly before the heavily-indented block that starts with jQuery.post – by these:

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 for Antispam Bee
if ( !t.data.comment ) { return false; } // Blank

In this code, you must replace the highlighted number 12345 in both places with the number used on your blog – you find this by simply looking in the source code (or with FireBug or similar) of a page with a comment field, just search for a textarea with name="comment-, that should do it. (And if it won’t work right away, remember to explicitly reload the page in the browser so it loads the modified JavaScript file.)

Alright, any questions, suggestions, or opinions about my code or the plugins?

16 Comments
1 Trackback

  1. bFQ

    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.

    • c

      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?

      • bFQ

        Oh, hab deinen Kommentar erst jetzt entdeckt, da er im Spam gelandet war! Passt ja :D

        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.

  2. CG

    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 ;-)

    • c

      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…

  3. CG

    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.

    • c

      Da grad ein Spambot ein paar mal durchgekommen ist, hab ich mal schnell zusätzlich NoSpamNX installiert. :)

  4. CG

    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… :mrgreen:

    • c

      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.

  5. T

    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.

  6. T

    Du nimmst mir aber auch jede Hoffnung :cry: :)

  7. CG

    @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 ;-)

  8. T

    Wollen wir das? Hä? WOLLEN WIR DAS??? :king:

  9. H

    Was ist denn z.B. mit IntenseDebate, braucht man damit dann überhaupt noch einen anderen Spamfilter wie Askismet oder AntispamBee?

    • c

      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.

Leave a Reply to cimddwc

All inputs are optional. The e-mail address won't be published nor shared.

  • Moderation: Comments from first-time commentators must be approved manually before they appear.
  • Behave yourself! No insults, no illegal content, etc.! Should go without saying, don't you agree...?
  • Website: I don't mind blogs with ads, but purely commercial links are not welcome and will be deleted. Just like pure spam comments.
  • Allowed HTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <sub> <sup> <big> <small> <u>