Adventskalender Tag 7 – Mini-Plugin: Bekannte Spam-IPs in WordPress blockieren

Bereits am Dienstag in unserem dritten Türchen hat Toscho einige nützliche SQL-Statements aufgezeigt um die Kommentare in WordPress zu analysieren und sich Informationen zu generieren.

Heute möchten wir euch ein kleines Mini-Plugin vorstellen, um bekannte IP-Adressen daran zu hindern, Kommentare bei uns zu hinterlassen. Als Voraussetzung dafür muss natürlich gegeben sein, dass Ihr die Spam-Kommentare nicht endgültig löscht.

Das Mini-Plugin

Unser kleines Mini-Plugin hängt sich in den WordPress-Hook preprocess_comment, welcher beim Erstellen eines neuen Kommentars in der Funktion wp_new_comment() ausgeführt wird. Hier haben wir die Möglichkeit noch bevor der Kommentar in die Datenbank eingefügt wird zu reagieren.

Unser Callback sieht wie folgt aus:

Da wir uns sehr früh in den Kommentar reinhängen, müssen wir das Vorbereiten der IP und des User-Agents aus dem Core übernehmen. Das ist zwar unsauber, aber leider gibt es dazu keine Helfer-Funktionen innerhalb der Comment-API.
Als erstes wird ein Query an die Datenbank ausgeführt um zu überprüfen, ob es schon einen solchen Spam-Kommentar mit der gleichen IP gibt. Leider bietet die Comment-API von WordPress nur eine sehr ungenaue Suche über die Klasse WP_Comment_Query. Hier können wir im Such-Array “search” übergeben, welche allerdings mit einer ODER-Verknüpfung und einen LIKE in folgenden Feldern sucht:

  • comment_author
  • comment_author_email
  • comment_author_url
  • comment_author_ip
  • comment_content

Deshalb haben wir uns entschieden einen eigenen performanten Query zu schreiben.

Die zweite Maßnahme um den Kommentar auf Spam zu prüfen, benutzen wir die interne WordPress-Methode check_comment() um gegen die Blacklist zu prüfen. Wenn eine der zwei Überprüfungen matched, brechen wir ab und verhindern so das Speichern des Spam-Kommentars.

Fazit

Mit diesem kleinen Plugin können wir bewirken, dass unerwünschte Kommentare schon frühzeitig geblockt werden. Somit können wir auch einiges an Last von unserer Datenbank nehmen und diese um unnötige Kommentare erleichtern. Allerdings setzt dieses Plugin auch voraus, dass bereits ein Datenbestand an Spam vorhanden ist und dieser auch langfristig aufgehoben wird.

Das Mini-Plugin Block Known Spam IPs findet Ihr auf Github.

Eure Meinung ist gefragt

Jetzt seid ihr an der Reihe! Wie verhindert ihr Spam? Hebt Ihr eure Spam-Kommentare auf oder löscht ihr die? Habt ihr schon einmal von der “Blacklist” in WordPress gehört? Lasst es uns wissen!

Beitrag teilen

Author Avatar

Hi! Mein Name ist Chris und ich arbeite als leidenschaftlicher Webentwickler im X-Team der Inpsyde GmbH. Meine Spezialgebiete sind die Backend- und Frontendentwicklung. Wenn ich nicht gerade über Barrierefreiheit und Usability diskutiere, bin ich auf Google+ unterwegs. In meiner Freizeit absolviere ich ein Informatikfernstudium, treibe gern und viel Sport, verschlinge ein Buch nach dem Anderen und blogge auf www.chrico.info.

Auch interessant:

WooCommerce 3.0: Neue Galerie für Produktbilder, mehr Geschwindigkeit und Update-Hinweise

von Michael Firnkes

Das Team von WooCommerce hat die Version 3.0 seines extrem erfolgreichen Onlineshop-Systems veröffentlicht. Das Release läuft unter dem Namen "Bionic But ...

Weiterlesen

Anleitung: Dateien an WooCommerce-E-Mails anhängen

von Michael Firnkes

Mit German Market kannst du den E-Mails von WooCommerce PDF-Anhänge und sonstige Dateien hinzufügen. Zum Beispiel AGBs, ein Rücknahmeformular oder belie ...

Weiterlesen

Anleitung: Bestellungen manuell annehmen mit WooCommerce

von Michael Firnkes

In manchen Fällen will man eingehende Bestellungen zunächst sichten und dann freigeben, bevor es zum Abschluss eines Kaufvertrages kommt. Wir zeigen dir, ...

Weiterlesen

Anleitung: Lebensmittelinformations-Verordnung (LMIV) mit WooCommerce umsetzen

von Michael Firnkes

Du verkaufst Lebensmittel in deinem Onlineshop? Dann musst du diese unter Umständen nach ganz bestimmten Regeln deklarieren. Wir zeigen dir, wie sich dies ...

Weiterlesen

Kommentare

7 Kommentare

  1. #1

    Hallo Chris, tolle Funktion hilft mir so leider nicht.
    Setzt allerdings vorraus, dass der Absender bekannt ist und schon mal einen Kommentar geschrieben hatte.
    Ich habe folgenden Fall:
    Es meldet sich immer wieder der selbe User (als Abonnent), (lbzxxh520@outlook.com) den ich nicht kenne, an. Weitere Handlungen kann ich nicht feststellen. Ist es möglich unbekannte ‚User‘ auszusperren?? Nach löschen ist er nach ca. 12h wieder da !
    Gibt es eine BlackList für (Spam)User??

    Schönes Wochenende
    Gruß Joachim

    • #3

      Hallo Joachim,

      Ja, wie bereits erwähnt setzt das Mini-Plugin voraus, dass man schon Spam in der Datenbank vorhanden hat. 🙂

      Es gibt unter Einstellungen -> Diskussionen eine sogenannte „Blacklist“ wo du z.B. die genannte E-Mail eintragen kannst und so dauerhaft diese blocken kannst.

      Schönen Samstag,
      Chris

  2. #2

    Also ich habe seit Monaten AntiSpamBee (http://antispambee.de/) installiert, das klappt wunderbar, kein Spamproblem mehr
    (Anm. d. Red.: Link wurde in die Ziel-URL umgeändert)

  3. #4

    Auch bei mir werkelt AntiSpamBee – völlig unbemerkt im Hintergrund und kaum systembelastend – vor sich hin. Eines der besten Plugins zur Spamabwehr überhaupt. Kann ich nur empfehlen!
    Euch allen ein gesegnetes zweites Adventswochenende!
    Stefan

  4. #5

    Auch ich benutze AntiSpamBee und bin sehr zufrieden. Spam wird automatisch nach 5 Tagen gelöscht. Eine Frage hätte ich allerdings: Ich nutze Subscribe2 um meine Freunde auf dem Laufenden zu halten. Ich habe die letzten vier Wochen nicht in meinem Blog gearbeitet und auf einmal 500 subscriptions gehabt. Kann ich irgendwie Prüfen, wer davon Spam ist, und wer nicht?

    Grüße

    Sascha

  5. #6

    Bei mir arbeitet AntiCaptcha – eine Lösung, die Spambots ein CAPTCHA vorgaukelt, das ‚echte‘ Nutzer aber nicht zu sehen bekommen. Wenn ein Kommentar mit einem ABtwortversuch zum CAPTCHA ankommt, ist das also zu 99% ein Spamversuch.

    Damit sind mir in anderthalb Jahren null(!) SPams durchgekommen und genau ein echtes Posting abgefangen worden (weil der Nutzer für seinen Browser einen automatischen CAPTCHA-Beantworter installiert hatte, um die CAPZCHAs nicht selbst beantworten zu müssen…).

    Wozu die Nutzer durch Reigen springen lassen um sich auszuweisen, wenn die Bots das ganz von selbst tun? 😉

  6. #7

    Ich habe es mit WP-Ban geschafft,.. ich traute mich nicht an die htaccess Datei heran… das Programm ist eigentlich ganz OK,.. nur blöd, wenn man sich selber sperrt, weil man zum Beispiel 3 mal falsches Passwort eingegeben hat… Einige male passierte das und ich musste erst einen anderen Rechner benutzen, um dann wieder ONLINE zu kommen,.. ( NAJA Aber immerhin es funktioniert ).,..
    gruß KARL

Schreibe einen Kommentar

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

Du kannst folgende HTML Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Abonniere unseren Newsletter

Trage hier deine E-Mail Adresse ein, damit du unseren Newsletter abonnieren kannst.