2010-08-10 28 views
4

reCAPTCHA nécessite une clé publique et une clé privée avant de pouvoir être implémenté sur un site Web. Il a également besoin des clés reCAPTCHA en fonction du site Web. Quelle est la raison derrière cela? Est-ce que les clés publique et privée affectent les mots affichés dans le reCAPTCHA? Je sais que je peux définir la clé publique et privée pour être GLOBAL dans lequel il peut être utilisé pour d'autres domaines mais pourquoi même besoin des clés en premier lieu?Quelle est l'utilisation de la clé publique et privée pour reCAPTCHA?

+0

Ajouter à ceci. J'ai travaillé sur l'implémentation de reCaptcha dans un projet MVC 3 et côté client le contrôle envoie la valeur de la réponse au serveur reCaptcha puis quand mes données de formulaire arrivent au côté serveur, j'appelle le serveur reCaptcha avec une clé privée mais rien sinon pour valider la demande. Je me demande si j'ai deux personnes qui soumettent ce formulaire en même temps, comment sait-il quelle demande a envoyé quelle réponse? –

Répondre

5

OK. C'est ma conjecture, pas de garantie.

  1. Votre clé publique est requise lors de la génération de la page côté client.
  2. Le client utilise cette clé publique pour demander à recaptcha: une image, une réponse correcte correspondante et éventuellement un identifiant. Bien sûr, la réponse et l'identifiant sont chiffrés, en utilisant la clé publique. (Donc, le client ne peut pas connaître la réponse)
  3. Les types d'utilisateurs dans la réponse, l'envoie à votre serveur.
  4. Vous avez: {id, answer} crypté à l'aide de la clé publique. Vous envoyez votre clé privée et ce message crypté au serveur recaptcha. Recaptcha décrypte le message, en indiquant la réponse et l'identifiant, et vérifie s'ils correspondent.
  5. il indique à votre serveur le résultat de la vérification.

Note:

  1. Si l'utilisateur envoie une clé publique de son propre à recaptcha, le chèque ne réussira pas puisque votre clé privée ne fonctionne pas avec sa clé publique.
  2. Le schéma prouve que votre serveur est vraiment celui qui reçoit la réponse recaptcha.