WordPress Spam Reduzierung mittels .htaccess

Wenn mich hier im Blog eins aufregt, dann ist das der Spam. Im Schnitt kommen hier inzwischen pro Tag 100 Spam-Kommentare angeflogen, die die Antispam-Bee von Sergej sorgfältig aussortiert. „Früher“ als der Rasen noch grüner und der Himmel blauer war, habe ich regelmäßig durch den Spam-Ordner geblättert, um zu sehen, ob nicht irrtümlich etwas dort gelandet ist, was da nicht hingehört. Bei 100 neuen Einträgen am Tag kommt man allerdings inzwischen in einen Bereich wo man sich überlegen kann: Spam durchsuchen oder neuen Blog-Beitrag schreiben. Letzteres gewinnt in der Regel.

Screenshot von WpRecipes

Bei WpRecipes ist jetzt eine Regel für mod_rewrite aufgetaucht, die einen großen Teil des Spams verhindern soll:


RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*yourdomainname.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

Was macht das „Skript“? Es schaut nach ob der Referer bei einem Post auf die wp-comments.post.php wirklich das Blog ist, und nicht irgendwas. Warum macht es das? Bots posten automatisiert auf die Datei, ohne sich das Blog vorher „anzuschauen“ oder im eigentlichen Sinne die Seite mit dem Kommentar-Formular überhaupt zu sehen, besitzen also keinen Referer der auf das entsprechende Blog verweist.

Die Methode ist nicht unbedingt neu, und auch nicht der Weisheit letzter Schluss, schafft es aber ein Großteil der Bots davon abzuhalten überhaupt etwas zu posten. Stattdessen bekommen die Teile ein 301 und wenn sie intelligent genug sind, kommen sie danach nie wieder.

Wie gesagt, nur ein Teil des Spams: man muss trotzdem weiterhin die Anti-Spam-Module in WordPress installieren, aber man muss sagen: einen Bot per .htaccess rauszuwerfen ist natürlich wesentlich effizienter als erst noch mit PHP zu ermitteln, ob er posten darf oder nicht. Falls ihr das Skript verwendet: bitte genau testen und natürlich yourdomainname durch den eigenen Domain-Namen ersetzen.

Ähnliche Beiträge

Komprimierung von Bildern in WordPress Bei dem derzeitigen Hype um Caching aller Art in WordPress wird meines Erachtens ein wichtiger Punkt außer Acht gelassen: die Bilder! Und dazu zähle i...
Facebook-Seiten in WordPress erzeugen WordPress und seine Plugins - eine unendliche Geschichte. Man hat einige sehr gute am Start, die auch gepflegt werden (so zum Beispiel die Plugins von...
WordPress Ausgabe Optimieren Für Seiten wie Seitwert.de, spielt unter anderem auch die Qualität des Quelltextes eine Rolle. Der W3C-Validator ermittelt für diese Seite fast über 6...
Eigene Kommentare in WordPress hervorheben Wie ich finde, ist das Hervorheben eigener Kommentare eine sehr sinnvolle Funktion, da Besucher somit direkt sehen können, wenn der Autor eines Beitra...

7 Kommentare

  • Ein hässliches zweischneidiges Schwert ist das. PHP erzeugt noch immer einiges an Serverlast beim Aussortieren des Spams und bei der Menge die man täglich bekommt ist das tatsächlich relevant. Was wäre da einfacher als direkt den Apache entscheiden zu lassen, aber das Referer Problem ist nicht zu unterschätzen.
    Ich nutze deshalb lieber die PHP Variante, dazu auch Kompliment an Sergej, Antispam Bee summt fleißig und fehlerfrei.^^ Hauptsächlich filtert das den Spam, der nicht deutschsprachig ist raus, das reicht schon. Damit sind auch alle Referer Probleme beseitigt.
    Ich kombiniere das aber noch mit der Simple Trackback Validation.

  • Damit wirfst Du aber leider auch die Besucher raus, deren Firmenproxy z.B. den Referrer löscht. Es gibt Firmen, die machen sowas aus Datenschutzgründen, etc.

    Ich glaube, auch manche Personal Firewalls haben diese Option…

    • Stimmt wohl, aber das gleiche Problem hat man mit einem reinen Spam-Filter auch, denn theoretisch müsste man kontrollieren was da so als Spam markiert wird – das ist nämlich auch nicht immer sauber :)

  • Jepp, Balu hat Recht. Es sind zu viele Menschen mit einer Referee-Unterdrückung unterwegs. Auch wenn es wenige sind (es werden aber immer mehr), halte ich die Technik für nicht einsatzfähig. Dann lieber einem Plugin die AntiSpam-Sache anvertrauen ;)

  • Müssten man mal beobachten wieviel normale Kommentare dadurch verschüttet gehen, den es gibt auch viele normal User die keinen Referer übertragen. Ich weiß jetzt auch nicht ob man das zum Beispiel auch bei so AdsBlock Plugins nicht auch teilweise einstellen kann.

Schreibe einen Kommentar