Recaptcha Dokumentation unklar - und vor Ort Fehler zu testen

9

Kann jemand bitte für mich aufräumen, was die letzte Seite der Recaptcha-Dokumentation sagt, finde ich es außergewöhnlich stumpf.

Hier ist die Dokumentation, die ich nicht verstehe:

  

Überprüfen der Antwort des Benutzers

     

Auf dieser Seite wird erläutert, wie die Antwort eines Benutzers auf einen reCAPTCHA überprüft wird   Herausforderung durch das Backend Ihrer Anwendung. Wenn ein reCAPTCHA gelöst ist   Nach Endbenutzer wird ein neues Feld (g-recaptcha-response) eingefügt   HTML. Sie können die Antwort des Benutzers auf drei Arten überprüfen:

     

g-recaptcha-response-POST-Parameter, wenn der Benutzer das Formular übergibt   deine Seite.   grecaptcha.getResponse (opt_widget_id) nach dem Benutzer   schließt die CAPTCHA-Herausforderung ab.   Als String-Argument für Ihre Callback-Funktion, wenn der Datenrückruf im g-recaptcha-Tag angegeben ist   Attribut oder der Callback-Parameter in der grecaptcha.render-Methode

     

API-Anfrage

     

URL:    Ссылка

Wie genau verifiziere ich?

Es gibt drei Möglichkeiten, wie ich die Antwort des Benutzers "verifizieren" kann, also nehmen wir die erste: Es gibt jetzt einen POST-Parameter in der übermittelten Form namens g-recaptcha-response mit etwas Kauderwelsch-Inhalt. Meine Frage ist: Was nun? Prüfe ich einfach, dass es nicht null ist?

Oder soll ich es dann mit der unten genannten API-Anfrage an Google senden und dann deren Antwort prüfen? Das könnte Sinn machen, aber es wäre schön, wenn die Dokumentation es ausspricht, stattdessen heißt es nur 'API Request'. Es wäre auch schön, wenn sie aussprechen, dass der response_string (vermutlich) der Inhalt des g-recaptcha-response-Parameters ist.

Offensichtlich war meine teuere Ausbildung nicht teuer genug, bitte kann jemand nur bestätigen, dass ich die API-Anfrage machen sollte.

Das bringt mich zu dem zweiten Problem: Sie können testen, ob das recaptcha-Widget von der lokalen Maschine funktioniert, aber Sie können die API-Anfrage nicht testen - ich erhalte einen standortübergreifenden Fehler

  

XMLHttpRequest kann Ссылка nicht laden. Kein 'Access-Control-Allow-Origin'-Header ist auf der angeforderten Ressource vorhanden. Herkunft ' http://localhost ' ist daher nicht erlaubt.

Kennt jemand eine Möglichkeit, dies zu umgehen, damit Sie Tests machen können?

    
mwarren 25.11.2014, 17:37
quelle

2 Antworten

5

Nach dem, was Sie sagen, sieht Ihr Hauptproblem darin aus, dass Sie die Antwort des Benutzers im Browser des Benutzers und nicht auf dem Server überprüfen. Stimmt das?

Nur um zu klären, was passiert ist ...

  • Sie zeigen das recaptcha-Widget in Ihrem Client-Formular an.
  • Der Benutzer füllt es aus.
  • Das Widget macht clevere Sachen und Ihr Klient hat jetzt eine response_string , die in Ihrem Formular als Feld g-recaptcha-response verfügbar ist (Sie können es auch mit den anderen beiden Javascript-Methoden erhalten, die sie erwähnen).
  • Wenn der Benutzer das Formular abschickt, vergewissern Sie sich, dass der Server das response_string zusammen mit all Ihren anderen Formulardaten erhält.
  • Auf dem Server müssen Sie eine Anfrage an Ссылка stellen. Wie Sie dies tun, hängt von der Sprache ab, die Sie auf dem Server verwenden. Sollte einfach sein. Sie erhalten eine Antwort, wenn der Benutzer das Captcha richtig erkannt hat oder nicht.
chichilatte 26.11.2014, 12:47
quelle
8

Vielleicht ist dieser Beitrag hilfreich, da er genaue Code-Snippets sowohl aus dem Backend als auch aus dem Frontend-Bereich anzeigt:

Ссылка

Php-Code:

%Vor%     
ProllyGeek 21.01.2015 20:44
quelle

Tags und Links