Antispam Bee ist eine datenschutzkonforme Möglichkeit einen Blog gegen Spam zu schützen. Leider kommen aber gelegentlich doch noch ein paar unerwünschte Kommentare hindurch. Vom Plugin nicht erkannten Spam kann jeder dem Pluginkollektiv melden. Du kannst aber auch selbst tätig werden.
Antispam Bee nutzt ein paar vordefinierte reguläre Ausdrücke (Regular Expression, kurz RegExp) um Spam zu erkennen. Natürlich nur, wenn das entsprechende Feature auch aktiviert ist. Diese Muster (Patterns) können auch per Filter ergänzt werden. Dafür stehen uns folgende Felder eines Kommentars zur Verfügung: IP, Host, Inhalt, E-Mail-Adresse und Autor.
Über ein Array kann ein regulärer Ausdruck für das entsprechende Feld (ip
, host
, body
, email
, author
) definiert werden.
So lassen sich auch komplexe Kombinationen erstellen. Beispielhaft zu sehen in diesem Child-Theme oder im Plugin selbst.
Aktuell hatte ich ein Problem mit Spam, der immer nur aus zwei zufälligen Großbuchstaben bestand. Website, Autor und IP wechselten wild hin und her, so dass ich mir einfach ein Pattern schrieb, welches alle Kommentare als Spam einstuft, die nur 0-2 Zeichen enthalten.
<?php /** * Plugin Name: Custom Pattern for Antispam Bee * Description: Add custom patterns for Antispam Bee. * Plugin URI: https://torstenlandsiedel.de * Version: 1.0 * Author: Torsten Landsiedel * Author URI: https://torstenlandsiedel.de * Licence: GPL 2 * License URI: http://opensource.org/licenses/GPL-2.0 */ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly /** * Antispam Bee filter for custom RegExp patterns */ function antispam_bee_patterns() { add_filter( 'antispam_bee_patterns', 'antispam_bee_add_custom_patterns' ); } add_action( 'init', 'antispam_bee_patterns' ); function antispam_bee_add_custom_patterns($patterns) { // Pattern for body text with two or less characters. $patterns[] = array( 'body' => '^(?=.{0,2}$).*' ); return $patterns; }
Wer mit individuellem Spam zu kämpfen hat, der findet in den Patterns eine mächtige Waffe zum Verhindern vom Spam.
Zum Testen deiner regulären Ausdrücke gibt es zahlreiche helfende Online-Tools. Zum Beispiel Debuggex (Achtung: Als Syntax muss hier PCRE eingestellt werden, da dies in PHP genutzt wird!)
Du hast ein Pattern geschrieben, welches dich vor Spam schützt? Das Pluginkollektiv freut sich über Pull Requests auf Github.
Hi Torsten,
wie es der Zufall so will, wollte ich mir die Tage mal näher ansehen, wie Antispam Bee (das ich natürlich im Einsatz habe) genau Spam erkennt. Daher danke hierfür. 🙂
Und in Sachen RegExp kann ich folgende Seite empfehlen: https://regex101.com/
LG,
Thorsten
Ich schrieb ja, dass es mehrere solcher Online-Tools gibt, aber dieser Linktipp ist richtig gut! Ich mag vor allem die Erklärung für die RegExp am rechten Rand. Danke!
Danke euch beiden für den informativen Artikel sowie die Linktipps zu den Regular Expressions 😉
Pingback: Das Projekt 52 geht in die nächste Runde | Kau-Boys
Pingback: Update für Antispam Bee | Pluginkollektiv | KrautPress
Moin Torsten,
danke für diese Vorlage!
Frage: Hätte als Pattern im Plugin nicht das hier gereicht:
^(.{0,2})$
Beste Grüße,
PC’L
Das kann gut sein. 🙂
Dein Beispiel funktioniert in meinen Tests genauso und ist etwas kürzer, daher: ja, hätte wohl gereicht.
Thank you for this. Do I need to put the code in a PHP file and upload it to the plugins folder?
Sorry for the late reply, your comment was marked as spam. 🙁
Yes, this needs to be put in a PHP file and this file needs to be in the plugins folder (I recommend putting it in a subfolder like the other plugins). After the activation it should be used by Antispam Bee which needs to be active too of course.
Hallo Torsten,
vielen Dank für die Vorlage. Funktioniert einwandfrei gegen Spams mit kurzen, sinnfreien Kommentaren.
Freut mich zu hören!