2009-08-18 90 views
2

这个问题类型扩展我的other question on robots and captcha。我做了所有人都推荐的(谢谢大家!),但是,是否有可能首先检测服务器上的机器人?例如(我将再次使用Stackoverflow作为参考):有时,当我提出一个问题时,Stackoverflow回来要求我验证我是否是人类。 但是,有时它不。检测服务器上的机器人?

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

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

感谢

回答

0

在计算器上,它是由太快执行相同的任务次数过多或过快地执行多个任务的完成。

如果你想模拟这个,你可以跟踪最近请求的数量和时间,并检查一切是否在你的限制之内。如果不是,则重定向到验证码。

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

+0

或空闲时间过长。 – 2009-12-06 23:05:47

0

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

如果您对机器人检测非常认真,请记录每次击键和鼠标移动。普通用户有一定比例的错误和不确定性与打字和导航网站有关。一个100%打字错误的用户可以轻松快速地浏览网站(将鼠标从a点移动到b点的直线上),而无需使用后退按钮,这很可能是一个bot。