2011-12-18 34 views
3

这与此主题的其他问题有所不同。我会尽可能地让尽可能多的人参与,尽管这是一个相当具体的问题。停止没有验证码的漫游器 - 转一转

想象一个网站上的一个按钮(html按钮),在点击了一定次数后,该按钮将为用户提供一个“点”。这些点存储在数据库中供很多用户使用,这些点可以在账户之间转移。 我不希望有人只是做一个快速的宏来保持他们在睡觉时点击按钮,所以我需要某种解决方案。以下是我认为有一些潜力的选项:

  1. 对于他们希望单击按钮(痛苦)的每一次都使用一个recaptcha。
  2. 使用cookie和recaptcha,以便它们允许他们点击10次(说),但然后要求进行recaptcha验证。 (他们可以删除cookie)。
  3. 使用一个替代方案来验证是不是太痛苦。

等“前途未卜”的想法:
-Simply移动页面按钮周围结合其他一些偷偷摸摸的策略。
- 当用户按下按钮时,他们需要提交某种谜题,用来检查其他人是否是人。

您认为如何? 另外,是否有可能让积分系统几乎100%不可检测/不可修复?系统安全非常重要。任何潜在的问题,你可以用这样的想法?

谢谢。

+0

我想你可以计算每个用户每秒的点击次数。在数据库中对其进行平均,并且如果用户高于此值,则提示他们输入验证码。您需要小心,但如果每个用户使用宏,那么每秒的平均点击次数将是人为的高 – Ben 2011-12-18 05:21:52

+0

谢谢mazzzzz。 – user1104147 2011-12-18 13:10:52

回答

4

不是按钮,而是使用目标制作可点击的图片。使图像动态,并将目标指定在页面上的其他位置(可能位于图像上方)。因此,例如,有一次它可以是“点击广场”,并在图像中显示正方形和三角形。下一次可能是在图像下半部分用圆圈“点击圆圈外”。可能性是无止境。 (我会远离使用颜色作为唯一线索,出于盲目考虑)。任何机器人必须知道发回的模拟鼠标点击的正确目标区域的坐标。

+2

有趣的想法。 +1 – deceze 2011-12-18 05:40:05

+0

这很有趣。听起来相当完整。这是否需要大量的图像制作和映射?你认为实现这个的最好方法是什么? – user1104147 2011-12-18 13:09:49

+0

@ user1104147 - 我会看看使用图像库来程序生成图像。我认为,不需要太多的规则来定义一组相当大的图像。相同的规则可能是选择目标和提示的基础。 – 2011-12-18 16:03:34

3

我认为这是不可能的,使任何系统100%unmacroable。也就是说,你可以让用户“宏观化”它很难。

您可以为此使用多种解决方案的组合。

a)您可以设置一个隐藏表单字段,其值为"",您将在检查提交时查看该值。机器人通常通过填写每个表单域的数据,这会阻止这些数据。

b)您可以使用javascript来检查鼠标是否被实际点击。

c)(我不知道这是否可能)但您可以检查鼠标是否在最后X秒内完全移动。任何人(希望)都会每隔几秒钟使用一次鼠标。

d)每X次点击添加验证码。

还有更多类似的东西。

+0

你的要点b)和c)要求开启JS(如果它是一个机器人,它通常不会)。其他2点是一个好主意。 – Nick 2011-12-18 05:30:42

+0

是的,但你可以让javascript创建另一个隐藏的'input'字段,并在提交时,脚本可以检查字段的存在和正确性。 (我似乎是一个隐藏的输入领域的大粉丝!:P) – Indranil 2011-12-18 05:32:30

+2

听起来好像OP很担心人们为他的按钮专门定制脚本机器人。 a)在这种情况下并不适用。 – deceze 2011-12-18 05:39:13

1

个人而言,我想将它设置为:

  1. 10后连续单击在同一会话使用户输入 某种数学检查(即产生2张随机数,使 用户添加/将它们相减并在答案框中输入 框)。

  2. 每20次点击就会要求填写验证码。

  3. 重置计数器。这允许系统每10次连续点击一次,给他们一些 种类的检查。

不引人注目的系统很难创建。

以外,你可以:

  • 只允许一定量的每分钟点击
  • 店平均点击/分钟时对数据库中的每个用户,所以你可以看看和资格/删除点来自滥用系统的用户。
+0

谢谢尼克,好主意。 – user1104147 2011-12-18 13:02:12