在服务器上检测机器人?

时间:2009-08-18 16:52:59

标签: java detect robot

这个问题扩展了我的other question on robots and captcha。我做了所有人的建议(感谢大家!),但是,它是否可以首先检测服务器上的机器人?例如(再次,我将使用Stackoverflow作为参考):有时当我问一个问题时,Stackoverflow会回来让我验证我是否是人。 但是,有时却没有。

Stackoverflow如何做到这一点,因为这就是我想要做的:检查数据,如果它看起来像机器人,请求人工验证。

这也需要在Java(最好),Perl或PHP上完成。

由于

2 个答案:

答案 0 :(得分:0)

在StackOverflow上,它通过太快地执行相同任务太多次或太快执行多个任务来完成。

如果您想模仿这一点,您可以跟踪最近请求的数量和时间,并检查一切是否在您的限制范围内。如果不是,则重定向到CAPTCHA。

不幸的是,我没有足够的Java EE经验来提供任何代码,但希望我的方法能给你一些想法。

答案 1 :(得分:0)

简单的方法是记录活动(点击,评论等),然后检查这些活动之间的频率和相似性。您通常可以通过查找重复执行的类似任务来检测机器人。

如果您对机器人检测非常认真,请记录每次按键和鼠标移动。普通用户在输入和浏览网站时会有一定比例的错误和不确定性。轻松快速地导航网站的100%无拼写用户(从a点到b点直线移动鼠标)无需使用后退按钮很可能是机器人。