Google reCAPTCHA:如何在服务器端获得用户响应并进行验证

好奇的

我正在做一个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小部件提供。因此,您必须验证此令牌。

用人类的话来说,

  • 您的服务器:嗨,谷歌,有一个家伙告诉我他不是机器人。他说您已经证实他是人类,他告诉我给您这个令牌作为证明。
  • Google:嗯...让我检查一下这个记号...是的,我还记得这个伙计,我给了他这个记号...是的,他由肉和骨头制成,让他通过了。
  • 您的服务器:嘿Google,还有一个家伙告诉我他是人类。他还给了我一个令牌。
  • Google:嗯...这是您上次给我的令牌...我很确定这个人正试图欺骗您。告诉他离开您的网站。

验证响应非常容易。只需发出GET请求即可

https://www.google.com/recaptcha/api/siteverify?secret=your_secret&response=response_string&remoteip=user_ip_address

并更换response_string与您早些时候得到了价值的G-验证码响应场。

您将获得带有成功字段的JSON响应

此处提供更多信息: https : //developers.google.com/recaptcha/docs/verify

编辑:实际上是POST,根据此处的文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何在服务器端验证Google reCAPTCHA v3?

来自分类Dev

如何在 ASP Classic 中验证 Google Recaptcha 2.0 服务器端?

来自分类Dev

如何验证Google身份服务器端

来自分类Dev

如何验证Google身份服务器端

来自分类Dev

Google Recaptcha第二次未在服务器端验证

来自分类Dev

在Android上使用Google Plus登录在服务器端对用户进行身份验证

来自分类Dev

Google+服务器端令牌验证

来自分类Dev

如何从服务器端使用 Google 登录创建 Firebase 用户

来自分类Dev

如何对Y轴的值进行排序-Google图表(服务器端)

来自分类Dev

服务器端Google授权

来自分类Dev

服务器端Google授权

来自分类Dev

在服务器端验证应用内购买的Android / Google

来自分类Dev

Google Apps脚本-服务器端身份验证

来自分类Dev

如何在React.js中将服务器端Json数据转换为react-google-chart格式

来自分类Dev

在Recaptcha中验证服务器端用户响应的目的是什么?

来自分类Dev

如何从服务器端后台服务访问Google Analytics(分析)API?

来自分类Dev

如何从服务器端后台服务访问Google Analytics(分析)API?

来自分类Dev

服务器端Google Analytics(分析)实验

来自分类Dev

statsd / graphite与Google Analytics(分析)服务器端

来自分类Dev

Google Analytics 服务器端 - 隐藏跟踪 ID

来自分类Dev

如何从python服务器端代码插入Google Glass Mirror凭据?

来自分类Dev

如何为网站的服务器端应用设置Google+登录?

来自分类Dev

如何同步调用Google Apps脚本服务器端函数?

来自分类Dev

如何对 Google Drive Api 进行服务器到服务器身份验证?

来自分类Dev

删除服务器端验证并进行全面的客户端验证?

来自分类Dev

具有服务器端Google OAuth 2 Passport身份验证的Ember应用程序(节点)

来自分类Dev

Google 身份验证服务器响应和用户 ID

来自分类Dev

如何在blazor Webassembly项目的服务器端控制器中对用户进行身份验证?

来自分类Dev

发送服务器端 Google Analytics 数据而不发送服务器位置

Related 相关文章

  1. 1

    如何在服务器端验证Google reCAPTCHA v3?

  2. 2

    如何在 ASP Classic 中验证 Google Recaptcha 2.0 服务器端?

  3. 3

    如何验证Google身份服务器端

  4. 4

    如何验证Google身份服务器端

  5. 5

    Google Recaptcha第二次未在服务器端验证

  6. 6

    在Android上使用Google Plus登录在服务器端对用户进行身份验证

  7. 7

    Google+服务器端令牌验证

  8. 8

    如何从服务器端使用 Google 登录创建 Firebase 用户

  9. 9

    如何对Y轴的值进行排序-Google图表(服务器端)

  10. 10

    服务器端Google授权

  11. 11

    服务器端Google授权

  12. 12

    在服务器端验证应用内购买的Android / Google

  13. 13

    Google Apps脚本-服务器端身份验证

  14. 14

    如何在React.js中将服务器端Json数据转换为react-google-chart格式

  15. 15

    在Recaptcha中验证服务器端用户响应的目的是什么?

  16. 16

    如何从服务器端后台服务访问Google Analytics(分析)API?

  17. 17

    如何从服务器端后台服务访问Google Analytics(分析)API?

  18. 18

    服务器端Google Analytics(分析)实验

  19. 19

    statsd / graphite与Google Analytics(分析)服务器端

  20. 20

    Google Analytics 服务器端 - 隐藏跟踪 ID

  21. 21

    如何从python服务器端代码插入Google Glass Mirror凭据?

  22. 22

    如何为网站的服务器端应用设置Google+登录?

  23. 23

    如何同步调用Google Apps脚本服务器端函数?

  24. 24

    如何对 Google Drive Api 进行服务器到服务器身份验证?

  25. 25

    删除服务器端验证并进行全面的客户端验证?

  26. 26

    具有服务器端Google OAuth 2 Passport身份验证的Ember应用程序(节点)

  27. 27

    Google 身份验证服务器响应和用户 ID

  28. 28

    如何在blazor Webassembly项目的服务器端控制器中对用户进行身份验证?

  29. 29

    发送服务器端 Google Analytics 数据而不发送服务器位置

热门标签

归档