这篇文章指的是Google ReCaptcha v2(不是最新版本)
最近谷歌推出了简化的#34;验证码"验证系统(video),使用户能够通过"验证码"只需单击即可。
但是,如何通过点击将机器人与人区分开来?
根据this answer,(假设类似的实施方式),首先" recaptcha"生成一个隐藏的密钥并将其附加到一个隐藏的输入元素,并且懒惰地呈现一个复选框(不是实际的复选框input
,而是div
),具有相同的密钥,单击该密钥时会发送异步请求(XHR)到Google后端服务器,将其标记为有效的验证密钥(即在提交表单时必须验证的密钥)。
但为什么机器人无法自动点击(至少是基于浏览器的机器人)?
这怎么可能有用?
答案 0 :(得分:190)
这是猜测,但基于Google对“风险分析引擎”的引用(http://googleonlinesecurity.blogspot.com/2014/12/are-you-robot-introducing-no-captcha.html)
我会假设它会看到你在点击之前的表现,你的光标如何移动到检查(有机路径/加速度),复选框的哪一部分被点击(随机位置,或每次死在中心) ),浏览器指纹,谷歌cookies&内容,点击与您的指纹或帐户绑定的位置记录,如果它检测到等等。
以这样的方式伪造“有机”行为相当困难,以至于它会欺骗不断学习模式检测引擎。在不确定的情况下,它仍会提示您匹配实际的CAPTCHA字符串。
答案 1 :(得分:67)
已经发布了一篇新论文,其中有几项针对reCAPTCHA的测试:
一些亮点:
Google已经修复了Cookie漏洞,可能会限制某些基于IP的行为。
另一个interesting finding是Google在JavaScript中运行虚拟机,该虚拟机会混淆reCAPTCHA代码和行为的大部分内容。此VM称为botguard,用于保护除reCAPTCHA之外的其他服务:
https://github.com/neuroradiology/InsideReCaptcha
2017年更新
最近的一篇论文(来自八月)在WOOT 2017上发表,在解决noCAPTCHA reCAPTCHA音频挑战方面达到了85%的准确率:
http://uncaptcha.cs.umd.edu/papers/uncaptcha_woot17.pdf
更新2018年
谷歌正在推出reCAPTCHA v3,它看起来像是一个根据网站校准的“人类得分预测引擎”。它可以安装到网站的不同页面(像Google Analytics脚本一样工作),以帮助reCAPTCHA和网站所有者在填写reCAPTCHA之前了解人类与机器人的行为。
答案 2 :(得分:20)
My Bots在ReCaptcha上运行良好。
这是我的解决方案。
让你的Bot做这个步骤:
首先编写一个人体鼠标移动功能,将鼠标像B样条一样移动(向我索取源代码)。这是最重要的一点。
还可以使用像https://www.purevpn.com
这样的VPN获得更好的结果对于每个Recpatcha执行以下步骤:
如果您首先使用VPN交换机IP
清除所有浏览器Cookie
清除所有浏览器缓存
通过随机设置其中一个Useragent:
一个。 Mozilla / 5.0(兼容; MSIE 9.0; Windows NT 6.1; Trident / 5.0)
湾Mozilla / 5.0(Windows NT 6.1; WOW64; rv:44.0)Gecko / 20100101 Firefox / 44.0
5每次使用不同的10x10随机范围时,使用人类鼠标移动鼠标将移动Funktion从RandomPoint移动到我不是机器人图像
然后点击
之间的随机延迟WM_LBUTTONDOWN
和
WM_LBUTTONUP
从Image Captcha
发送屏幕截图
或
让他们解决。
从captcha求解器接收到点击cooridinates后,使用您的Human Mouse移动Funktion移动并单击Recaptcha Images
使用您的Human Mouse Move Funktion移动并点击Recaptcha验证按钮
75%的所有trys Recaptcha都将解决
Chears Google
汤姆
答案 3 :(得分:3)
我可以提出我的猜测,因为这不是一种开放的技术。
谷歌表示,这是为了将人与机器人区分开来之前,期间,之后的信息。但我对复选框上的最终点击更感兴趣。比方说,POST数据(已解决的CAPTCHA)有一个名为fingerprint的字段,一个根据用户行为计算的字符串。我认为可能存在关于该复选框位置的字段。我想这个复选框位于Google后端随机生成的坐标系中,并由我网站的公钥加密。因此,机器人可以“猜测/计算”此框的位置,但当网站所有者使用私钥进行GET查询以验证用户身份时,Google将解密坐标系并说明用户是否点击了正确的位置。因此,只有一个可能的右键单击(有一些偏移,它是一个方框)位于此随机坐标系统中,仅由Google和网站所有者拥有。
答案 4 :(得分:0)
请记住,Google还将reCaptcha与
一起使用Canvas fingerprinting
唯一识别没有Cookie的用户/浏览器!