Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails rack attack gem throttle

I don't know why I can not use rack-attack gem Here what I did

Gemfile

gem 'rack-attack' 

I ve installed the gem

config/application.rb

config.middleware.use Rack::Attack

initializers/rack-attack.rb

class Rack::Attack

throttle('logins/ip', :limit => 5, :period => 60.seconds) do |req|
  if req.path == '/login' && req.post?
  Rails.logger.error("Rack::Attack Too many login attempts from IP: #{req.ip}")
  req.ip 
  end
end

end

routes.rb

post   'login'   => 'index#create'
root 'index#new'
get 'login' => 'index#new'

I am using Rails 4.2.3 and the rack-attack gem 4.3.0

I wonder what I miss

like image 439
Ramazan Zor Avatar asked Nov 18 '15 11:11

Ramazan Zor


1 Answers

make sure you configure cache.store in your initializers/rack-attack.rb file you can configure it like that:

class Rack::Attack
  ...
  cache.store = ActiveSupport::Cache::MemoryStore.new
  ...
end
like image 102
Mosab.Mohamed Avatar answered Oct 18 '22 02:10

Mosab.Mohamed