领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

为什么机器人不能勾选“我不是机器人”复选框?

nixiaole 2024-11-19 08:25:50 知识剖析 25 ℃

有没有想过为什么机器人不能直接勾选“我不是机器人”?这似乎是一项简单的任务,但这个小复选框背后却隐藏着很多事情。

10多年前,我们在网上冲浪的时候需要验证你是真人的时候,碰到的是根据图片上的文字输入对应的文本,像CAPTCHA 这种。但随着AI机器人变得越来越聪明,这些OCR识别测对于机器人来说实在太简单了,所以这些校验测试需要变得更加严格。问题是,它们变得如此困难,甚至人类都难以应对。

谷歌开发了一个名为 reCAPTCHA 的系统。你可能见过它;它只是一个方框,你点击它来表明你不是机器人。但机器人也可以点击方框,是吧?

你可能觉得如果你想训练机器人点击网站上的复选框,这是一个相当简单的过程。比如UI自动化测试工程经常这么做:当页面加载时,通过HTML或CSS元素定位到“我不是机器人”复选框。如果存在“我不是机器人”复选框,将鼠标移到复选框对象上并单击。看起来似乎非常简单,但点击这个小框的背后还发生了更多的事情。

reCAPTCHA 复选框如何工作?

reCAPTCHA 复选框会跟踪所有导致复选框被点击的信息,包括实际点击复选框。其中一条关键信息可以判断是否是人类,那就是将鼠标拖到那里的路径。

如果你告诉计算机转到网页上的某个点,它会直接跳转到正确的 X 轴和 Y 轴点。你可以做得更真实点,让它模拟鼠标拖动以到达目的地,但它默认会选择最直接的路径:一条完美的直线到达目的地。你可以做得更更真实点,编写一些伪随机路径活动的代码,但几乎不可能模仿人类移动光标时的微观随机性。

对于我们的AI机器人来说,事情变得更加困难的是,当你进入一个带有“我不是机器人”复选框的页面时,它会从你的浏览器中捕获信息,包括:

  • 页面加载需要多长时间
  • 使用的浏览器、插件和 Cookie
  • 时区和时间
  • 屏幕尺寸和分辨率
  • IP 地址和一般位?置
  • 进行了多少次按键、点击和/或滚动

reCAPTCHA 机器会使用所有这些信息来确定操作鼠标是人类还是机器人。如果它无法判断,它可能会提示你完成“点击包含此内容的图像”挑战,比如让你挑选交通信号灯或公交车等图片。它不仅会检查你是否选择了正确的图片,还会检查你如何选择它们。而训练AI机器人完成这项任务则更加困难。

令人惊讶的是:reCAPTCHA 还会查看你在网上的活动。你的浏览历史记录可帮助它判断你是真人还是机器人。这可能感觉有点像间谍活动,事实也确实如此。当你使用 Google 的服务时,还会请求你同意让他们跟踪你的部分在线活动。

但是那些为垃圾邮件发送者解决 CAPTCHA 的服务呢?他们仍然存在,但这项工作很艰巨,他们解决数千个此类难题却只得到很少的报酬。

所以,这就是为什么这个简单的复选框比看上去要复杂得多。这是一场AI和更智能的安全系统之间的战斗。随着技术的进步,阻止机器人在网上冒充人类的方法也在不断进步。

Tags:

最近发表
标签列表