Wer ein soziales Netzwerk mit dem WordPress-Plugin BuddyPress realisiert hat und die Nutzeranmeldung geöffnet hat, weiß vermutlich wovon ich rede: Täglich melden sich mehrere (teilweise hunderte) Fakeuser an, die allein dem Zweck dienen, Spam im Netzwerk zu verbreiten und Nutzer auf zwielichtige Seiten zu locken.
Um dem entgegen zu wirken, gibt es viele Ansätze und Plugins, die eigentlich nicht viel bringen. Ich habe mit der Zeit eine Art Taktik entwickelt, um Spam-Anmeldungen erstens zu enttarnen und zweitens zu verhindern.
Prinzipiell ist es kein großer Aufwand, den ich betrieben habe, trotzdem ist meine BuddyPress-Installation nun Spamfrei. Und das schon seit einiger Zeit. Hier meine Ansätze:
Begonnen habe ich mit dem Plugin “BP Xtra Signup”, mit welchem ich weitere Pflichtangaben zur Anmeldeseite hinzugefügt habe. Das allein verwirrte einige Spambots schon ziemlich, die Zahl der Spam-Logups ging zurück. Dennoch kamen noch viele Spammer durch. Weitere Plugins, die das verhindern sollten, führten zu keiner merklichen Verbesserung.
Weiterhin schaltete ich mit dem Plugin “BuddyPress reCaptcha” ein Captcha unter das Anmeldeformular, um zumindest einigen Spambots den Zugang zu verweigern (Captchas bieten heutzutage nicht mehr wirklich Schutz, da sie von Billigstkräften zu Tausenderpreisen geknackt werden).
Da sich danach immer noch täglich mehrere Spammer anmeldeten, griff ich zu einer letzten, bisher sehr wirksamen Methode:
Zuerst veränderte ich in der wp-config.php die URL zur Anmeldeseite, indem ich folgendes einfügte:
define ( 'BP_REGISTER_SLUG', 'tolle-lange-url-zur-anmeldeseite' );
Das verwirrt die Spambots, weil es vom Standard abweicht. Weiterhin leite ich nun alle Anfragen auf wp-signup.php und /register auf eine externe Seite um, sodass sie nicht mehr auf die tatsächliche Anmeldeseite weiterleiten. Dafür nutze ich mod_rewrite und die .htaccess, in welche ich nach dem WordPress-Block folgendes einfügte:
# BEGIN wp-signup.php REDIR
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-signup\.php$ [OR]
RewriteCond %{REQUEST_URI} ^/register$
RewriteRule ^.*$ http://example.com/die-spammers [R=301,L]
# END wp-signup.php REDIR
Ebenfalls leite ich alle Anfragen um, die Daten per POST an das Formular übergeben, aber nicht von einer der Seiten des Netzwerkes kommen oder die einen leeren User-Agent haben:
# BEGIN ANTISPAMBLOG REGISTRATION
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .tolle-lange-url-zur-anmeldeseite*
RewriteCond %{HTTP_REFERER} !.*example.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://example.com/die-spammers [R=301,L]
# END ANTISPAMBLOG REGISTRATION
Tatsächlich brachten diese Schritte den gewünschten Erfolg. Seitdem ich diese Methoden anwende, gibt es überhaupt keine Spam-Anmeldungen in meinem Netzwerk mehr.
Ich hoffe, dass ich da kein Einzelfall bin und dass meine Ausführungen hier auch anderen BuddyPress-Administratoren weiterhelfen können. Wenn dem so ist, bitte ich um eine kleine Rückmeldung in den Kommentaren!
Ich lasse alles bei mir über einen Honeypot laufen und der funktioniert ohne irgendwelche Probleme
Sicher, Honeypots gehen auch, aber die sind doch böse! Ich hab es mal probiert mit ner Blacklist von Project Honey Pot, es hat nicht wirklich geholfen.
Andererseits, einen HoneyPot habe ich ja quasi so auch konstruiert, wer rein tappt, kommt nicht auf das Formular.
Besten Dank für den Tipp – das Spam Problem hab ich auf meinem Blog auch schon des Öfteren gehabt. Echt nervig..vor allem manche Bot gesteuerten User…
Lange Zeit irre ich nun durch das Netz, um eine Lösung für mein Spamproblem zu finden und bin endlich fündig geworden. Vielen Dank dafür.
Mich erschreckt es irgendwie, dass Billigkräfte Captcha Formulare austricksen, um dann google übersetzte Artikel auf deutschen Seiten zu veröffentlichen. Keine Ahnung, was das bringen soll.
Hallo zusammen,
Ich war wie einige andere schon seit einigen Tagen auf der Suche, wie ich meine Spamanmeldungen reduzieren kann. Jetzt bin ich auf diesen Beitrag gestoßen und habe mir die Codeschnippsel angeschaut und auch bei mir auf der Seite eingesetzt. Leider hatte ich letzte Nacht wieder Anmeldungen, die keiner will. könnte ich etwas falsch gemacht haben bei der .htaccess ? kann man selber das ganze mal testen, als ob man ein Spamuser ist?
Ich würde mich sehr über eine Antwort freuen.