2016-07-29 10 views
1

Ich möchte Google ReCaptcha verwenden, aber ich möchte auch nicht Server-Seite oder Back-End-Code berühren.Google ReCaptcha Front-End-Lösung

Ich benutze ASP.Net MVC, aber ich möchte auch kein Paket von Nuget oder einer Bibliothek verwenden. Lösung muss nur Front-End sein. Alle javascript/jquery-Lösungen werden akzeptiert.

Ich merke auch, dass meine Formulare Daten sammeln und als E-Mail an bestimmte Mailbox senden. Ich verwende auch keine 3rd-Party-Bibliothek für diesen Prozess. Es wird manuell nur von ASP.Net MVC codiert.

+1

Verwenden Sie Java Script, grecaptcha.getResponse() –

+2

Der wichtige Teil einer Lösung wie Google Recaptcha ist die Kommunikation mit der Server-Seite. Dies liegt daran, dass Front-End-Code leicht gelesen, geknackt oder sogar komplett ersetzt werden kann. Nehmen wir an, Sie haben 'captcha_challenge()', was 'true' zurückgibt, wenn der Benutzer das Captcha lösen kann. Jetzt gehe ich in die Quelle und ersetze deine Funktion mit 'function captcha_challenge() {return true; } '. Ich klicke erneut auf die Schaltfläche, und ich bin dabei. Es hat wirklich keinen Sinn, ein Captcha oder eine Passwortverschlüsselung nur am Frontend zu implementieren. Du brauchst * ein Backend, damit es sicher funktioniert. –

Antwort

0

Dank Ivo Coumans für detaillierte Erklärung. Ich habe es funktioniert, aber offensichtlich ist es nicht sicher. Rinto Antony hat mir eine Idee gegeben, was ich mache.

Ich rufe die Google ReCaptcha API Abschnitt meiner Website und Hinzufügen des div auf den Kopf, dass das Captcha erstellt:

<div class="g-recaptcha" data-sitekey="api_key" data-callback="enableBtn"></div> 

Da die Daten-Rückruf enableBtn Funktion auslöst, ist es möglich, Maßnahmen zu ergreifen, wenn es ist wahr. So habe ich einen deaktivierten Senden-Button zu meinem Formular hinzugefügt.

<input type="submit" value="Gönder" id="button1" disabled> 

Dann habe ich ein einfaches Javascript hinzugefügt, um es zu aktivieren:

<script type="text/javascript"> 
    function enableBtn() { 
    document.getElementById("button1").disabled = false; 
} 
</script> 

Ich bin mir bewusst, dass diese einfach und keine wirkliche Lösung umgangen werden kann, aber es funktioniert. Ich bin offen für alle Ideen, die das besser machen können.

0

Sofern Sie kein CMS verwenden, müssen Sie Code in das Backend einfügen, da Sie mit dem reCAPTCHA eine POST-Anfrage stellen.

Ich empfehle sehr WordPress, da es nur darum geht, ein Plugin herunterzuladen und dann nur die Schlüssel zu kopieren und einzufügen.