Cette entrée n'a pas de réponse à la question d'origine, mais il contribue à mettre en œuvre une solution similaire. @IanM dit, la case à cocher recaptcha est en phase bêta et il ne peut pas être utilisé sans invitation.
C'est un JavaScript capthca.
Puisque la plupart des robots spammeurs ne pas exécuter le code javascript et ne peut pas identifier la corrélation entre le texte affiché à l'écran et dans les DOM ou les actions nécessaires, ils ne peuvent pas cliquer sur la case à cocher.
Veuillez noter qu'il n'y a pas de case à cocher à tous, c'est juste un élément div avec un peu de CSS style. Les robots des spammeurs tentent de remplir le formulaire de saisie des éléments, mais il n'y a pas d'entrée dans le captcha. La coche est juste une autre div (classe css).
Lorsque vous cliquez sur la case à une requête ajax informe le serveur que la div a été cliqué et le serveur stocke ces informations dans une mémoire temporaire (marque le jeton: ce jeton a été activé par un humain). Lorsque vous soumettez le formulaire, un champ caché envoie le jeton qui est activé, puis, quand le serveur valide les informations du formulaire, il reconnaîtra que le jeton a été activé. Si le jeton n'est pas activé, le formulaire sera invalidé.
Les étapes de points:
- Générer un identifiant unique et l'ajouter à l'écran avec une entrée cachée
- Rendre une case à cocher sur le site (sans l'aide de l'
<input>
élément, éventuellement à l'aide de <div>
) et ajouter précédemment identifiant généré (vous pouvez utiliser le html5 data-*
attributs)
- Lorsque l'utilisateur clique sur la case à cocher envoyer une requête ajax vers le serveur et de valider le capcha, si elle est valide marquer comme
in use
. (Montrer le résultat - l'identifiant est OK/pas OK - pour l'utilisateur)
- Lorsque l'utilisateur envoie le formulaire, le formulaire de données contient l'identificateur. Vérifier une fois de plus, il devrait exister et il faut en
in use
de l'état.
- Si toutes les validations sont transmises, les données du formulaire est prêt à l'emploi/processus
Vous pouvez lier à l'identificateur de la session de l'utilisateur, adresse IP, et/ou vous pouvez utiliser des limites de temps pour améliorer la sécurité.
REMARQUE Ce type de captcha ne fonctionne que si le JavaScript est activé!