这个问题有点扩展了我关于机器人和验证码的另一个问题。我做了大家推荐的(谢谢大家!),但是有没有可能首先检测到服务器上的机器人?例如(再一次,我将使用 Stackoverflow 作为参考):有时当我提出问题时,Stackoverflow 会回来要求我验证我是否是人类。但是,有时它不会。
Stackoverflow 是如何做到这一点的,因为这就是我想要做的:检查数据,如果它看起来像机器人,请求人工验证。
这也需要在 Java(最好)、Perl 或 PHP 上完成。
谢谢
这个问题有点扩展了我关于机器人和验证码的另一个问题。我做了大家推荐的(谢谢大家!),但是有没有可能首先检测到服务器上的机器人?例如(再一次,我将使用 Stackoverflow 作为参考):有时当我提出问题时,Stackoverflow 会回来要求我验证我是否是人类。但是,有时它不会。
Stackoverflow 是如何做到这一点的,因为这就是我想要做的:检查数据,如果它看起来像机器人,请求人工验证。
这也需要在 Java(最好)、Perl 或 PHP 上完成。
谢谢
在 StackOverflow 上,它是通过太快地执行相同任务太多次或太快地执行多个任务来完成的。
如果您想模拟这一点,您可以跟踪最近请求的数量和时间,并检查一切是否在您的限制范围内。如果不是,请重定向到验证码。
不幸的是,我没有足够的 Java EE 经验来提供任何代码,但希望我的方法能给您一些想法。
简单的方法是记录活动(点击、评论等),然后检查它们之间的频率和相似性。您通常可以通过查找重复执行的类似任务来检测机器人。
如果您对机器人检测非常认真,请记录每次击键和鼠标移动。普通用户在键入和浏览网站时会遇到一定比例的错误和不确定性。一个 100% 没有拼写错误的用户可以轻松快速地浏览网站(将鼠标沿直线从 a 点移动到 b 点)而无需使用后退按钮,这很可能是机器人。