铁路机架攻击油门如何工作?

时间:2016-10-25 19:01:54

标签: ruby-on-rails ruby rackattack

说我有这样的油门:

throttle('emails/ip', :limit => 5, :period => 24.hours) do |req|
  if req.path == '/users/check_email_availability' && req.post?
    req.ip
  end
end

如果某人在受到限制后仍在尝试访问该链接,会发生什么?他们会再被封锁24小时吗?或者宝石只会查看他们最近的5个请求?什么时候他们没有节流?

1 个答案:

答案 0 :(得分:1)

每个返回truthy值的请求都会使用时间戳进行缓存,即使请求被阻止也是如此。要确定请求是否被阻止,rack-attack会在:period时间范围内对请求进行计数。

因此rack-attack不会阻止:period。相反,它会计算:period内的所有请求,如果此计数大于:limit,则会阻止请求。