如何识别机器人的点击行为?

问题描述 投票:0回答:1

我开发了这个简单的应用程序,只需一个按钮即可触发不同的文本更改。我的目标是区分人类用户和潜在的机器人。如果点击发生得太快,则可能是机器人,这时我就想展示 ReCaptcha。

我的方法包括在 5 分钟窗口内监控第一次按钮单击和后续按钮单击的时间间隔。如果点击速度保持极其一致,例如每 10 毫秒点击一次,则这是潜在机器人活动的危险信号。人类通常无法维持这样的机器人精度,无论间隔是 10 毫秒、1 秒还是 2 秒。

现在我很困惑的是,这个方法正确吗?如果是这样,可以做什么(在代码中)?

这是一个屏幕截图。 https://imgur.com/a/CK1ETWO

  frameLayoutBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                v.startAnimation(animation);
                
                ClickCounter++;

                
                catStr = getCatTextFromDatabase(ClickCounter);
                if (ClickCounter > 1000){
                    CountText.setText("Count:" + ClickCounter);
                }

                if (catStr != null && !catStr.isEmpty()) {
                    CatText.setText(catStr);
                }


            }

           
            private String getCatTextFromDatabase(long counter) {
                DatabaseHelper dbHelper = new DatabaseHelper(getApplicationContext());
                return dbHelper.getTextForCounter(counter);
            }
        });
java android recaptcha botdetect
1个回答
0
投票

我从未在生产环境中实际使用过这样的东西,但我建议两件事:

  1. n
    或辅助类中记录最后一次
    Collection
    单击时间(或单击之间的时间),在添加时自动处理旧的、现在不相关的条目。我喜欢
    java.util.Stack
    具有类似目的的帮助类。
  2. 不要依赖确切的数字。我遇到过机器人随机化其输出事件以防止这种情况发生。您应该结合使用平均点击时间(以识别不切实际的快速点击)和标准偏差(以识别过于规则的间隔)
© www.soinside.com 2019 - 2024. All rights reserved.