我可以在不验证令牌的情况下实现 Recaptcha V3 吗?

时间:2021-07-16 11:50:14

标签: javascript recaptcha grecaptcha

Google Recaptcha V3 文档显示最简单的实现方法是使用他们所谓的“自动将挑战绑定到按钮” https://developers.google.com/recaptcha/docs/v3#automatically_bind_the_challenge_to_a_button

从他们的例子来看,回调函数直接处理提交。 他们是否暗示您不必通过此方法使用他们的 API 验证令牌? 或者这个例子只是为了展示如何运行一个以令牌作为参数的 JS 回调函数?

如果您没有对 recaptcha 令牌进行服务器端验证,您只需从按钮中删除 recaptcha 事件,然后像往常一样在没有令牌的情况下提交表单。

简而言之,文档中的示例是不安全的,还是只是缺少服务器端验证部分?

1 个答案:

答案 0 :(得分:0)

当然要在后台验证一下。

<块引用>

像 reCAPTCHA 一样向 verify the response token 发出请求 v2 或 Invisible reCAPTCHA。

您希望如何检查验证码是否以其他方式正确填写?通过 javascript api 对脚本的简单响应?绕过它需要5秒钟。 Captcha 旨在保护您免受机器人攻击,而非浏览器用户。

让我们想象一下,您正在客户端验证 catcha 响应(使用 javascript)。您从某个函数中获得了一些“真实”信息,即验证码已正确填充。然后呢?基于此,您将用户重定向到一个网址而不是另一个网址?或者你有什么想法让验证码作为任何保护?如果你这样做,每个人都可以直接转到 url,绕过它。或者您打算实施一些会话、服务器端保护。如果是这样,为什么不使用 reCatcha 中已经实现的那个?如果没有服务器端验证,就无法制作一个脚本来保护您免受机器人或垃圾邮件的侵害。