跨站点请求伪造攻击会在受害者的会话中进行,以便向受信任的站点提交恶意请求。 Cheat Sheet here将CAPTCHA描述为防止CSRF攻击的好方法。
众所周知,Google Re-Captcha可有效防止僵尸网络垃圾邮件。在具有相同IP地址的位置点击几次后,需要人来解决图片拼图。由于前几次尝试都是免费的,黑客是否可以通过在最初的几次尝试中点击Re-Captcha数字来绕过它?
答案 0 :(得分:4)
正如OWASP的备忘单所述,CAPTCHA可以作为击败CSRF的一种方式。
然而,你让我思考。也许如果攻击者对Google Recaptcha2小部件进行了Clickjacking攻击,并对使用Recaptcha2进行CSRF防御的页面上的CSRF攻击进行了跟进,那么这可能对攻击者有利。< / p>
考虑到这一点,Recaptcha2的工作方式是返回由私钥签名的值,该私钥可以在服务器端进行检查。这需要点击当前表单上显示的CAPTCHA,即使没有任何问题需要解决。因此,Recapcha2应该抵御CSRF。但是,请确保您的托管页面也受到Clickjacking的保护。
答案 1 :(得分:1)
Captcha代表暴力攻击,但是,它也可以阻止CSRF攻击。由于攻击无法知道什么是正确的验证码值,因此无法使用有效的验证码值填充表单。
由于可用性非常重要,因此您无法要求用户在每个请求中解决验证码。因此,缺省情况下,框架使用csrf_token机制。