1

假设我有这样的油门:

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

如果有人在被限制后继续尝试访问该链接会发生什么?他们会再被封锁 24 小时吗?还是 gem 只会查看他们最近的 5 个请求?他们什么时候变得不受约束?

4

1 回答 1

1

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

所以rack-attack不会阻塞 for :period。相反,它会计算其中的所有请求:period,如果此计数大于:limit,则请求被阻止。

于 2016-10-25T20:27:42.913 回答