我正在做一个Java(JSP + Servlet)Web应用程序(我知道这个问题与技术无关)。我希望使用最新的Goolge reCAPTCHA服务。
我正在玩以下Goolge reCAPTCHA示例:
https://developers.google.com/recaptcha/docs/display#config
<html>
<head>
<title>reCAPTCHA demo: Simple page</title>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>
<form action="?" method="POST">
<div class="g-recaptcha" data-sitekey="my_site_key"></div>
<br/>
<input type="submit" value="Submit">
</form>
</body>
</html>
我可以看到显示的Recaptcha图像,如下所示:
当我选中“我不是机器人”时,得到以下信息:
如您所见,有一个“验证”按钮,根据我的测试,用户响应会发送到Google进行验证。
如何获得用户响应,以便可以使用自己的后端代码验证用户响应(如Google在https://developers.google.com/recaptcha/docs/verify所建议的那样)。
g-recaptcha-response POST parameter when the user submits the form on your site
在服务器端,只有先通过Google成功验证用户,我才能通过单击“提交”按钮从参数“ g-recaptcha-response”获取用户输入。否则,“ g-recaptcha-response”在服务器端为空白。这意味着我只能在客户端验证成功之后才能进行服务器端验证。如果是这样,那么在服务器端进行另一次验证(由Google reCAPTHA提供)的目的是什么?
我想念什么吗?
新版Google Recaptcha的妙处在于,验证现已完全封装在小部件中。这意味着,小部件将负责询问问题,一直验证响应,直到确定用户实际上是人类为止,然后您才获得g-recaptcha-response值。
但这不能确保您的站点不受HTTP客户端请求伪造的影响。
任何具有HTTP POST知识的人都可以将随机数据放入g-recaptcha-response表单字段中,并跟踪您的网站,使其认为该字段由google小部件提供。因此,您必须验证此令牌。
用人类的话来说,
验证响应非常容易。只需发出GET请求即可
并更换response_string与您早些时候得到了价值的G-验证码响应场。
您将获得带有成功字段的JSON响应。
此处提供更多信息: https : //developers.google.com/recaptcha/docs/verify
编辑:实际上是POST,根据此处的文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句