首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >谷歌的Recaptcha V3 -我应该跟踪得分,还是足够的“成功”是真的?

谷歌的Recaptcha V3 -我应该跟踪得分,还是足够的“成功”是真的?
EN

Stack Overflow用户
提问于 2019-05-16 10:40:42
回答 2查看 12.2K关注 0票数 23

背景:我的网站非常简单,包含一个包含链接列表的主页(由第三方服务提供)--每个链接都会弹出一个带有提交按钮的文件上传输入。在该弹出窗口中,我嵌入了Recaptcha脚本,并在提交文件时验证了令牌。由于这个多个弹出设置,我选择了V3来实现与验证机制的零用户交互。

现在,一个问题出现了--我应该如何解释谷歌的反应。

谷歌的V3文档说:

reCAPTCHA通过在你的网站上看到真正的流量来学习。因此,在准备环境中或在实现后不久的分数可能与生产不同。由于reCAPTCHA v3从未中断用户流,所以您可以先运行reCAPTCHA而不采取行动,然后通过查看管理控制台中的流量来决定阈值。默认情况下,可以使用0.5.阈值。

我非常清楚,从这个描述中,score才是最重要的-- 0.0对于最有可能的机器人,1.0对于最有可能的人类。所以在我的代码中,我检查了success == truescore >= 0.5

但是,我在网上找到的用于服务器端验证的none示例注意到了分数。这里有三个。这三种方法只检查请求是否成功:

https://stackoverflow.com/a/54118106/3367818

https://stackoverflow.com/a/52633797/3367818

https://dzone.com/articles/adding-google-recaptcha-v3-to-your-laravel-app

最后,我的问题是-这是对V3机制的误解,还是我遗漏了什么?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-01 11:40:53

来补充@BrettM的答案..。

这取决于核查的处理方式。

使用reCAPTCHA PHP客户端库

参见代码行ReCaptcha::verify()第180-182行

  • 设定阈值时:$recaptcha =新的Recaptcha($secret);$response = $recaptcha ->setExpectedHostname($hostname) ->setExpectedAction($action) ->setScoreThreshold(.5) ->verify($token,$ip); 当不满足阈值时,$response->isSuccess()将返回false$response->getErrors()将包含E_SCORE_THRESHOLD_NOT_MET
  • 而不设置阈值: $response->isSuccess()将返回true,除非有错误。 现在应该检查$response->getScore()

不使用reCAPTCHA PHP客户端库:

$response‘’success‘和$response’‘score’都应该检查。

票数 3
EN

Stack Overflow用户

发布于 2019-07-23 14:11:39

是的,你绝对应该在Google的验证反应中检查“分数”的值。

这三个例子非常缺乏细节,而且实际上相当混乱。

“成功”仅仅意味着您发送了一个格式良好的请求,并提供了正确的标记和秘密。

听起来你已经在检查“分数”的价值了,所以这很好,但我只是想澄清一下,对于那些发现这个问题,但仍然有点困惑的人来说。

票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56166663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档