确保实际用户而不是机器人调用该函数

时间:2013-11-16 05:42:45

标签: ruby-on-rails security

我在rails应用程序上有一个ruby,它基本上运行在一堆AJAX调用和一吨jquery / javascript上。特定操作接受id(整数和按顺序排序)并返回一些值。应用程序的本质是这样的,我想只允许在从浏览器调用函数时调用该函数或者常规用户如何与应用程序交互。但是,恶意用户可能会设置机器人来调用具有id的函数来获取返回值。有办法阻止这个吗?

1 个答案:

答案 0 :(得分:1)

您无法在100%的时间区分机器人和真实用户。无论你投入什么反措施,如果机器人创造者足够关心,机器人将能够绕过。你需要问问自己停止机器人的重要性,并根据你实施和维护你的反措施以及你将对真正的用户造成多大麻烦的时间进行权衡。一些可能性:

  • Captcha - 将阻止大多数机器人并激怒真实用户
  • 反机器人问题(“什么是4加5?”) - 将停止大多数机器人并略微刺激真实用户
  • Rails的CSRF保护 - 将停止一些机器人而不会影响真实用户
  • 要求用户通过电子邮件登录/验证 - 如果他们不必拥有帐户,将阻止大多数机器人并极大地激怒真实用户