如何防止api的使用



上下文:有人写了一个机器人,使1000的api调用我的web应用程序,这反过来依赖于谷歌api。我只希望真正的用户使用web应用程序。

如何防止机器人访问api。一种解决方案是记录IP地址并限制通话速率。另一种方法是使用验证码。

然而,我正在寻找一个简单的hack(聪明的,天真的实现),防止自动查询。

web应用程序是用Ruby on Rails构建的。

编辑:我的webapp执行一些计算并返回结果。游客是一般公众,他们只是偶尔使用它。他们通过谷歌搜索结果找到了我的应用。因此,他们不需要使用访问令牌来使用网站。

您可以使用像Rack Attack这样的gem来限制各种条件下的用户请求。例如,允许同一ip每秒最多5个请求:

# Throttle requests to 5 requests per second per ip
Rack::Attack.throttle('req/ip', :limit => 5, :period => 1.second) do |req|
  # If the return value is truthy, the cache key for the return value
  # is incremented and compared with the limit. In this case:
  #   "rack::attack:#{Time.now.to_i/1.second}:req/ip:#{req.ip}"
  #
  # If falsy, the cache key is neither incremented nor checked.
  req.ip
end

您检查机架节流阀gem了吗

add-api-throttle-to-your-rails

相关内容

  • 没有找到相关文章

最新更新