Anscheinend ist ein neuer Abrechnungszeitraum für die Spam Schleuder Bots in den unendlichen Weiten des Internets losgegangen und versuchen aufs Neue mit ihren Spam Attacken den Blog- und Webseitenbesitzern das Leben unnötig schwerzumachen. Bisher sind unsere Blogs und Seiten noch relativ verschont worden, aber gerade seit Beginn des Monats haben die Kommentar Attacken und die „ich versuche mich als Admin anzumelden“ Versuche zugenommen.

Dank so genialer WP Plugins wie „Limit Login Attempts“ und „Ban“ lassen sich die „Einbruchsversuche“ zwar aufzeichnen und dann auch verhindern, aber es ist trotzallem nervig, wenn sich hier die Bots austoben.

Einfache Spam Bot Abwehr

Also war es an der Zeit, etwas dagegen zu unternehmen. Die erste Maßnahmen, man nehme die .log Files auseinander und schaue, was sich dort so tummelt und welcher Spam Bot sich da wie verewigen möchte.

79.148.252.*** -- [06/Jul/2012:07:11:51 +0200 "POST /wp-login.php HTTP/1.0

Und schon war eine der Spamschleudern gefunden. Was eine prima Sache ist, diese Bots machen sich nicht die Mühe, erst eine Seite zu öffnen, damit zumindest ein Referrer übergeben wird, nein, die Bots suchen sich gezielt, wie jetzt hier wp-login.php und versuchen gleich einen POST.

Danke auch, denn wenn ich versuche mich im Admin-Bereich anzumelden, dann komme ich über meine eigene Seite und hinterlasse so meine Domain als Referrer. Und schon ist der Ansatz gefunden, wie ich den Spam Bots das „Einbrechen“ vermiesen kann. Voraussetzung dafür ist allerdings mod_rewrite muss aktiviert sein und eine .htaccess ist angelegt und beschreibbar.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} POST
    RewriteCond %{REQUEST_URI} .wp-login\.php*
    RewriteCond %{HTTP_REFERER} !*.meine-webseite.de.*
    RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]
</IfModule>

Und schon ist Ruhe und die direkten login POST Versuche der Spam Bots verlaufen im Sande, bzw. gehen mit einem 301er Redirect „return to sender“. Und sollte es doch mal einer der Spam Bots an der .htaccess Falle vorbei schaffen, dann warten da ja noch zwei WordPress Plugins auf Arbeit.

Ebenso lassen sich die nervigen und ebenso lästigen Kommentar Spam Bots ohne weiteres Plugin aussperren. Dazu muss nur die Zeile

RewriteCond %{REQUEST_URI} .wp-login\.php*

gegen

RewriteCond %{REQUEST_URI} .wp-comments-post\.php*

getauscht werden, da auch hier der Spam Bot versucht, den wp-comments-post.php direkt auszulesen und anzusprechen, und sich vor dem Abschicken das Formulars nicht noch die Mühe macht, einen Referrer zu übergeben.

Dieser Code Schnipsel lässt sich auch für andere Sachen prima umbauen, unter anderen findet er bei mir auch Verwendung bei einem phpbb Forum, um Spam Bot Anmeldungen in eine Fehlerseite laufen zu lassen.

Spam Bots am Ende

Und seit diese RewriteRule in den .htaccess Dateien schlummert, ist keine (!) Benachrichtigung mehr eingeflattert, weder für einen Login Attempt, den es zu bannen gilt, noch sind irgendwelche Spam Kommentare mehr aufgetaucht.

Übrigens findet sich bei Wikipedia.de ein netter Artikel zum Thema Spam und wie Spam eigentlich seinen Namen bekommen hat

SPAM ist ursprünglich ein Markenname für Dosenfleisch, bereits 1936 entstanden aus SPiced hAM, fälschlich auch Spiced Pork And Meat/hAM oder Specially Prepared Assorted Meat genannt. Während der Rationierung im Krieg war Spam eines der wenigen Nahrungsmittel, die in Großbritannien praktisch überall und unbeschränkt erhältlich waren. Die Omnipräsenz dieses Fleisches, ähnlich wie später die unerwünschter Botschaften (zum Beispiel als E-Mails), förderte die Entwicklung des Begriffs.

Edit 08.03.2014

Bin mittlerweile dennoch dazu übergegangen, die Comments rauszuwerfen und gegen Facebook Comments zu tauschen und den Login habe ich anderweitig „sicher“ gemacht.