Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 限制每个用户的请求数(使用机架攻击和设备)_Ruby On Rails_Ruby_Devise_Throttling_Rackattack - Fatal编程技术网

Ruby on rails 限制每个用户的请求数(使用机架攻击和设备)

Ruby on rails 限制每个用户的请求数(使用机架攻击和设备),ruby-on-rails,ruby,devise,throttling,rackattack,Ruby On Rails,Ruby,Devise,Throttling,Rackattack,我正在使用限制请求到特定url Rack attack文档展示了如何通过请求IP或请求参数限制请求,但我想做的是限制每个用户的请求。所以,无论IP是什么,用户都应该能够在一定的时间范围内发出不超过n个请求 我们使用Desive进行身份验证,我想不出一种简单的方法来根据请求唯一地标识用户 我应该在会话/cookie中存储用户id吗?也许是一个统一的哈希?你认为最好的方法是什么?找到了答案。Desive已在会话中存储用户id。代码将类似于: Rack::Attack.throttle('someth

我正在使用限制请求到特定url

Rack attack文档展示了如何通过请求IP或请求参数限制请求,但我想做的是限制每个用户的请求。所以,无论IP是什么,用户都应该能够在一定的时间范围内发出不超过n个请求

我们使用Desive进行身份验证,我想不出一种简单的方法来根据请求唯一地标识用户


我应该在会话/cookie中存储用户id吗?也许是一个统一的哈希?你认为最好的方法是什么?

找到了答案。Desive已在会话中存储用户id。代码将类似于:

Rack::Attack.throttle('something', limit: 6, period: 60.seconds) do |req|
  req.env['rack.session']["warden.user.user.key"][0][0] if some_condition?
end

ddgd,您能告诉我如何检查
请求内容类型
吗,例如
限制响应
方法中的
应用程序/javascript
文本/html