区分机器人鼠标单击和人类鼠标单击
我有一个在线运行的小程序,我想确保人们不能使用 java Robot 类来操作该小程序。我知道雅虎在他们的几个游戏平台上做到了这一点,我想知道是否有人知道他们是如何实现的。
I have an applet that I'm running online and I want to make sure people can't use the java Robot class to operate the applet. I know that yahoo does this on several of their game platforms and I was wondering if anyone knew how they accomplished it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
观察鼠标的移动,并确保您没有看到从一个地方“跳跃”到另一个地方,而是随着时间的推移而移动。 Sun/Oracle 的 J2SE 教程展示了如何跟踪鼠标移动事件: http:// download.oracle.com/javase/tutorial/uiswing/events/mousemotionlistener.html
请记住,这可能无法在触摸屏等设备上检测机器人和人之间的差异,或平板电脑输入设备。
另一件需要注意的事情是用户是否单击相同的像素,或者只是单击相同的附近区域。人类相当不精确,机器人通常不会,除非经过编程。
我还会放入一个手势记录器以进行良好的测量,以编译这些信息,并跟踪用户的实际动作。如果您怀疑某人作弊,您可以查看他们的实际鼠标移动情况,并将其与已知的人进行比较。这将使您比我们任何人都能更好地了解您需要寻找什么。
Watch mouse movement, and make sure you're not seeing "jumps" from one place to another, but movement over time instead. Sun/Oracle's J2SE tutorials show how to follow mouse movement events: http://download.oracle.com/javase/tutorial/uiswing/events/mousemotionlistener.html
Keep in mind that this would potentially fail to detect the difference between a robot and a person on something like a touch screen, or tablet input device.
One more thing to watch for is whether the user is clicking the same pixel, or just in the same vicinity. Humans are fairly imprecise, robots generally aren't unless programmed to be.
I would also put in a gesture logger for good measure that compiles this information, and keeps track of the actual movements of your users. If you suspect someone of cheating, you can then look at what their actual mouse movements looked like, and compare that with a known person. That will give you a better idea of what you need to look for than any of us can come up with off the tops of our heads.
跟踪鼠标位置随时间的分布。人类移动鼠标的方式与机器人不同,机器人每次点击鼠标时都知道将其放置在何处。当然,更智能的机器人可以对抗这种防御。
keep track of the distribution of mouse positions over time. Humans move the mouse differently than a robot that knows exactly where to position it every single time it is clicked. Of course, a smarter robot can counter this defense.