Google Re-Captcha 2 可以防止 CSRF 攻击吗?

Can Google Re-Captcha 2 prevent CSRF attacks?

跨站点请求伪造攻击利用受害者的会话向受信任的站点提交恶意请求。 Cheat Sheet here 将 CAPTCHA 描述为防止 CSRF 攻击的好方法。

据我们所知,Google Re-Captcha 可有效防止机器人垃圾邮件。在具有相同IP地址的位置被点击多次后,需要人来解决图片拼图。由于前几次尝试只是 'free',黑客是否有可能通过在前几次尝试中点击 Re-Captcha 数字来绕过它?

Captcha 代表暴力攻击,但是,它也可以防止 CSRF 攻击。由于攻击无法知道什么是正确的验证码值,因此不可能用有效的验证码值填写表单。

由于可用性很重要,因此您不能要求用户在每次请求时都解决验证码问题。因此,框架默认使用 csrf_token 机制。

正如 OWASP 作弊 sheet 提到的,CAPTCHA 可以用作击败 CSRF 的一种方式。

但是,你让我想到了。也许如果攻击者将对 Google Recaptcha2 小部件的 Clickjacking 攻击与对受 Recaptcha2 保护的页面的 CSRF 攻击进行后续攻击以进行 CSRF 防御,那么这可能对攻击者有利。

更新:

考虑到这一点,Recaptcha2 的工作方式是 return 一个可以在服务器端检查的私钥签名的值。这需要点击当前表单上显示的验证码,即使没有什么需要解决的。因此 Recapcha2 应该防御 CSRF。但是,请确保您的托管页面也受到 Clickjacking 的保护。