Anti-Captcha使用鼠标检测

时间:2013-03-15 23:47:11

标签: javascript security captcha

我想知道是否有可能为仅使用javascript检测鼠标移动的表单创建安全的人体检测机制(不使用验证码),因为jquery和操作系统代码都可以移动鼠标(所以我告诉)。

这是我的计划:

  1. 使用jQuery,我可以检测鼠标是否已移动,然后允许表单提交(如果有)。
  2. 我已经启用了跨站点脚本,因此没有人可以直接提交到网页之外的网站,我需要javascript来汇总表单。
  3. 鼠标移动将为表单中的鼠标字段添加一个值,该值将在服务器端确定它是由人提交的。
  4. 鼠标字段将使用鼠标移动将播种的某种形式的算法,然后在服务器端对其进行解码,以便机器人可以在鼠标字段中输入任何值。
  5. 所以我想知道这种方法是否仍存在漏洞或者机器人仍然绕过它的方法。

2 个答案:

答案 0 :(得分:4)

不能创建一种依靠鼠标移动来检测人类的安全机制。查看java.awt.Robot类,了解如何仅使用软件破解它的一个示例。我用这个课程将一个复活节彩蛋写成一个用鼠标插入的程序,使它跳起一些疯狂的模式。用户喜欢它;-)你也可以用USB Rubber Ducky破解它。

答案 1 :(得分:2)

你的方法依赖的东西对机器人来说是微不足道的,除非你以某种我没有想过的方式使用鼠标移动。

无论您使用鼠标做什么,在一天结束时,您所做的只是在表单中创建一个值。

我不是100%确定你打算如何实现这一点,但如果你只是跟踪确切的鼠标位置(我不确定HTML会让你这么做,但我可能是错的)。机器人可以通过将字段设置到您期望鼠标所在的位置来模拟它,或者通过将x和y的变化添加到某个值来移动“虚拟”鼠标。

(这是假设机器人当然能理解你的指示。我假设用纯文本HTML写作,“请在下面的方框中输入值'290'”大多数机器人除外专门为您的网站编写的一个将能够注册...)