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

MarketPress Adventskalender 07

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:

youtube

Neu: Video-Tutorials für German Market

von Michael Firnkes

Du willst wissen, wie sich die einzelnen Module in unserer Rechtssicherheits-Suite German Market für WooCommerce bedienen lassen? Dann helfen wir dir jetz ...

Weiterlesen
woonews19

WooCommerce Wochenrückblick #19: Google Analytics, kostenlose Themes und neue Kennzeichnungspflicht

von Michael Firnkes

Die Shop-Analyse ist wichtig, muss aber rechtlich abgesichert werden. Für WooCommerce gibt es neue Theme-Inspirationen und ein neues German Market. Dies u ...

Weiterlesen
slack-blog

Neues Plugin: Slack Connector - Verbinde WordPress, WooCommerce und Slack

von Michael Firnkes

Anfangs wollten wir lediglich unsere eigenen Slack-Prozesse optimieren. Mit automatisierten Benachrichtigungen aus dem MarketPress-Shop, dem Blog und unser ...

Weiterlesen
woo26

WooCommerce 2.6: Deutlich mehr Versandoptionen, bessere Bestellübersicht

von Michael Firnkes

WooCommerce 2.6 "Zipping Zebra" steht kurz vor der Veröffentlichung, das Release ist für kommenden Dienstag geplant. Wir zeigen dir, was sich für dich ...

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 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="">