2017-05-11 3 views
2

Wir haben ein benutzerdefiniertes Registrierungsformular auf unserer Wordpress-Website. Wir verwenden google recaptcha und geben das Feld für die menschliche Frage ein, um die Spam-Registrierung zu stoppen, aber die Spam-Registrierung hört nicht auf.Stoppen Sie die Spam-Registrierung auf unserem benutzerdefinierten Registrierungsformular

Kann jemand vorschlagen, was genau getan werden muss?

Der Registrierungsformularcode lautet wie folgt.

Der JS-Code hat zwei Funktionen eine für Recaptcha und eine andere für Validate die „Frage-Feld“.

Das Register Submit-Button ist standardmäßig deaktiviert und wird nur aktiviert, wenn der recaptcha Aufruf der Funktion unterstützt.

function recaptchaCallback() { 
 
    $('#submitBtn').removeAttr('disabled'); 
 
} 
 

 
function validateForm() { 
 
    var a = document.forms["registerform"]["question"].value; 
 
    var b = document.forms["registerform"]["user_login"].value; 
 
    var c = document.forms["registerform"]["user_email"].value; 
 
    if (a == null || a != "5") { 
 
    alert("Bitte fülle alle Felder richtig aus"); 
 
    return false; 
 
    } 
 

 
}
<script src="https://www.google.com/recaptcha/api.js"></script> 
 
<form name="registerform" onsubmit="return validateForm()" method="post"> 
 
    <div class="form-group"> 
 
    <label style="font-size:18px;">Register</label> 
 
    </div> 
 
    <div class="input-group input-group-md"> 
 
    <span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span> 
 
    <input type="text" name="user_login" class=" form-control" placeholder="Username"> 
 
    </div> 
 
    <br> 
 
    <div class="input-group input-group-md"> 
 
    <span class="input-group-addon"><span class="glyphicon glyphicon-envelope"></span></span> 
 
    <input type="email" name="user_email" class="form-control" placeholder="E-Mail"> 
 
    </div> 
 
    <br> 
 
    <input type="hidden" name="redirect_to" value="Redirect_URL"> 
 
    <div class="input-group input-group-md"> 
 
    <span class="input-group-addon"><span class="glyphicon glyphicon-question-sign"></span></span> 
 
    <input type="number" name="question" class="form-control" placeholder="2+3 = ?"> 
 
    </div> 
 
    <br> 
 
    <div id="captcha" class="form-group"> 
 
    <div class="g-recaptcha" data-sitekey="6LdOGg4TAAAAAJsTt_ZGoK67cyF277uIYwWRxJPW" data-callback="recaptchaCallback"></div> 
 
    </div> 
 
    <div id="pass-info" class="clearfix"></div> 
 
    <button class="btn_full" id="submitBtn" disabled>Register</button> 
 
</form>

Das Ganze funktioniert gut, Recaptcha und Menschen Frage Feld. Wenn wir die Registerform manuell testen, können wir uns nicht registrieren, ohne das Recaptcha zu akzeptieren und genau den Wert einzufügen, um das Formular zu verarbeiten.

Dies verhindert jedoch nicht automatische Spam-Bots, die auf unserer Website registriert sind.

Gibt es einen anderen Weg, durch den diese Spam-Bots registrieren?

Auch wir deaktiviert „Die Mitglieder können sich registrieren“ im Admin-Dashboard.

Machen wir etwas falsch?

Vielen Dank im Voraus für die Rückmeldung und Anregungen.

Antwort

1

müssen Sie es im Backend-Validierung zu tun, im Frontend, Validierung umgangen werden kann.

speichern die IP-Adresse für jeden registration.dont innerhalb einer gewissen Zeitspanne registeration von derselben IP erlauben, aber Benutzer können einige Proxy-Tool verwenden, die die IP-Adresse in jeder Sekunde ändert.

bestätigen die E-Mail, E-Mail foreach die Validierung E-Mail an registrierte E-Mail-Adresse, und wenn der Benutzer klicken Sie auf die Aktivierung klicken, aktivieren Sie das Konto senden, da sonst keine.

1

Sie haben wahrscheinlich den serverseitigen Teil von Recaptcha vergessen. Ein Roboter sollte es nicht mehrmals übergeben werden können, Schau dir das komplette Tutorial von Google: https://developers.google.com/recaptcha/intro

Sie müssen einen Schlüssel auf dem Server konfigurieren, wie erläutert, dass geheim ist, und dem Google wird Ihnen schicken, wenn Das Captcha ist gültig.

Verwandte Themen