我有一个网站,上面有一个带有recaptcha 的表格。表单有很多无法移动到客户端的服务器端验证,因此用户通常使用相同的 recaptcha 令牌提交多个表单。问题是 recaptcha 不太适合多重验证。
每个 reCAPTCHA 用户响应令牌只能验证一次。
如果尝试多次验证同一个令牌,谷歌的 api 会返回timeout-or-duplicate
.
因此,为了使表单具有流畅的用户体验,并且每次用户提交未通过服务器端验证的表单时都不会请求再次填写验证码,我要么需要将验证码令牌验证推迟到服务器端 -侧面验证(这会减慢服务器速度),或者我需要将验证码令牌列入白名单,例如 3 分钟。但是,将验证码列入白名单 3 分钟意味着有人可以制造一个机器人来攻击我的网站 3 分钟......
我觉得上述解决方案可能会影响安全性,所以我想知道常见做法是什么,或者你们是否有更好的解决方案。谢谢!