2015-01-24 6 views
5

Wie alle anderen haben wir auch Probleme mit Spam auf unserer WordPress-Seite. Wir bekommen jeden Monat eine Menge Traffic und wir sind auf ein seltsames Problem gestoßen. Wir verwenden das Really Simple Captcha-Plugin mit Contact Form 7 und es funktioniert größtenteils (es reduziert fast alle Spam-Mails), außer es gibt eine Handvoll Fälle, die jeden Tag noch durchkommen. Das Formular, auf dem wir es haben, ist ein Flyout-Kontaktformular, das angezeigt wird, wenn Sie den Mauszeiger über einen Link in der Kopfzeile halten. Es ist im Grunde auf jeder Seite der Website.WordPress Spam auf? Action = register URL

In der E-Mail, die wir von der Einreichung erhalten, haben wir die URL, von der die Nachricht kommt, unten ausgedruckt. Das einzige, was alle erfolgreichen Spam-Nachrichten gemeinsam haben, ist das "? Action = register", das an die URLs angehängt wird, von denen sie gesendet werden. Wenn ich zu dem Link gehe, an den er gesendet wird, und ihn an das Ende der URL anhefte, funktionieren das Formular und CAPTCHA immer noch (d. H. Wenn ich das CAPTCHA falsch eingib, blockiert es mich). Das ist komisch.

Ich weiß, dass "? Action = register" normalerweise an wp-login.php angehängt wird, damit sich Benutzer auf der Site registrieren können. Ich weiß auch, dass es ein Plugin gibt (https://wordpress.org/plugins/custom-registration-link/), das es zu einem gewissen Grad beheben wird, aber das Plugin ist sehr veraltet und es ist auch nur den Registrierungslink zu ändern (nicht unbedingt Spam zu verhindern).

Wir haben die Registrierung auf unserer Website geschlossen, da wir Benutzer manuell eingeben, wenn wir müssen, damit ich ein paar Patches kenne, die ich verwenden kann, um dies zu beheben (Leute umleiten, wenn $ _GET ['action'] eingestellt ist Beispiel), aber es beantwortet nicht, warum dies passieren würde. Wie würde es eine Schwachstelle nur mit einer GET-Variable geben?

+3

Ohne einen Link, einen Code oder mehr Informationen ... ist diese Frage viel zu weit gefasst. – rnevius

+0

redirect $ _GET ['action'] kann echte Registrierungen auch richtig umleiten? Spam, den du bekommst, könnte von manuellen Captcha-Einreichungen stammen. Haben Sie die Honeypot-Methode ausprobiert, um Spam zu stoppen? – Karthik

+0

Es gibt keine zusätzliche Sicherheitslücke aufgrund dieses Parameters.Es ist sehr gut möglich, dass die Referrer-URL (die URL, von der die Nachricht kommt) gefälscht wird. –

Antwort

-3

Es gibt viele Techniken, um Spammer zu verhindern, keine sind 100% effektiv. Einige sind leicht, aber vielleicht stellen sie Probleme mit der Zugänglichkeit dar, wenn Sie damit beschäftigt sind (alle Europäer sollten es sein). Einige sind ziemlich kompliziert und können immer noch zu falschen positiven Ergebnissen führen, indem legitime Benutzer blockiert werden. Sie können eine Kombination von Techniken implementieren, aber eine große Anzahl von Ansätzen kann das Laden von Seiten verlangsamen.

Es ist am einfachsten, ein vorhandenes Plugin zu verwenden, aber wenn Sie vernünftigen Code schreiben können und bereit sind, die Zeit einzubauen, finde ich es Spaß, verschiedene Techniken auszuprobieren, um Spammer zu stemmen und zu verwirren. Eine bemerkenswert effektive Technik, wenn Sie eine Website von besonderem Interesse haben, besteht darin, dass die Registranten einfach eine Frage richtig beantworten müssen, die Ihre Zielgruppe leicht beantworten kann, aber nicht gegoogelt werden kann. Die Fragen müssten gelegentlich rotiert und geändert werden, denn es gibt menschliche Spammer, die einen Bruchteil eines Cent pro Spam bezahlt haben, die besondere Freude an der Lösung dieser Rätsel haben. Sobald sie es tun, prahlen sie mit ihren Kohorten, dann lernt jeder Spammer die Antwort.

Unten Links könnten hilfreich sein, um Sie

https://wordpress.org/support/topic/anti-spam-registrations
http://w3guy.com/wordpress-plugin-combat-stop-spam-bot-registration/

EDIT eine eine weitere Lösung. Sie können Benutzer stoppen, die die URL direkt durch den folgenden htaccess aufgerufen haben.

RewriteCond %{REQUEST_URI} "^/wp-login.php$" [NC] 
RewriteCond %{QUERY_STRING} "action=register" [NC] 
RewriteCond %{HTTP_REFERER} "!^http://([^.]+.)?domain.com/.*$" 
RewriteRule (.*) "/wp-login.php?" [L,R] 

Ich denke, das Ihnen helfen könnte.

+1

Sie haben den [Kommentar von einem anderen Benutzer] (https://wordpress.org/support/topic/anti-spam-registrations#post-5541652) in Wordpress-Foren kopiert und eingefügt. Dies ist keine Antwort. –

+0

@AlanMachado Ja, das habe ich getan, aber können Sie mir bitte sagen, dass ich jemandem eine Antwort geben soll? Wenn ja, kannst du überprüfen, ob es viele Antworten auf SO gibt, die kopiert und eingefügt werden können. Ich denke, das Hauptanliegen von SO ist die Bereitstellung einer besseren Antwort, die das Problem lösen oder bei der Lösung des Problems helfen kann, egal, woher es kommt oder wie es gekommen ist. Also habe ich das gerade gemacht. ;) – urfusion

+0

Und eine berechtigte Antwort aus b * tthurt downvoted. Das ist professionell. –