如何阻止垃圾邮件/机器人打我的休息api?

时间:2014-08-04 19:43:30

标签: ajax rest captcha bots spam

我有一个用户点击我制作的游戏的按钮。每次用户单击按钮时,它都会向我的rest api发送请求,递增计数器,将计数存储在我的数据库中并返回。游戏的目标是尽可能多地单击按钮。

请求如下所示:

    $.ajax({
      type: 'POST',
      url: '/increment',
      success: handleSuccess
    }

我关心的是有人编写一个脚本来阻止/increment休息终点并提升他们的分数。

我虽然使用captcha,但我担心会让我的网站难以使用并且看起来很糟糕。

还有其他方法可以阻止脚本/机器人/垃圾邮件发送者点击我的休息端点吗?

1 个答案:

答案 0 :(得分:0)

如果请求登录您的用户或解决验证码不是一个选项,您也可以记录该请求的IP并停止递增一段时间(例如24小时),如果它再次由该IP完成。为了给您的人类用户带来一些便利,如果在您的时间限制内再次点击它,您也会发送警告信息。

这种方法并不完美,因为在大型大学或公司网络中,可能有更多用户共享IP地址,但根据您的受众,这种方法可能已经足够了。它的妥协应该可以很好地作为便利(没有登录/验证码)和没有垃圾邮件之间的权衡(一些用户在极少数情况下无法保存他们的分数)。