
Manter um APP online seguro é um trabalho constante mas fundamental, neste Screencast você vai aprender como proteger seu APP Ruby On Rails de ataques DDoS, brute force e etc de forma fácil e extremamente rápida.
Para fazer isso nós vamos usar uma gem chamada Rack Attack, ela intercepta as chamadas antes que elas cheguem aos seus controllers e através de alguns métodos que vamos codar, ela filtra as chamadas permitindo a passagem apenas do que está dentro do padrão de segurança que estabelecemos.
Então vamos ao Screencast ver tudo isto na prática 😀💪
Instalando e preparando a gem
0 – Prepare seu novo projeto Rails ou algum projeto pré existente que você deseje melhorar a segurança.
1 – Coloque no seu Gemfile:
1 |
gem 'rack-attack' |
2 – Instale rodando:
1 |
bundle install |
3 – Inclua o middleware no seu config/application.rb:
1 |
config.middleware.use Rack::Attack |
4 – Crie um initializer chamado rack_attack (config/initializers/rack_attack.rb) e coloque nele:
1 2 |
class Rack::Attack end |
Protegendo o site Rails de ataques DDoS
1 – Atualize seu intializer rack_attack colocando:
1 2 3 4 5 |
class Rack::Attack throttle('req/ip', limit: 300, period: 5.minutes) do |req| req.ip # unless req.path.start_with?('/assets') end end |
Protegendo seu site Rails de brute force
1 – Para proteger usando o email, Inclua no seu initializer rack_attack:
1 2 3 4 5 |
throttle("logins/email", limit: 5, period: 20.seconds) do |req| if req.path == '/login' && req.post? req.params['email'].presence end end |
2 – Para proteger usando o ip, inclua no seu initializer rack_attack:
1 2 3 4 5 |
throttle('logins/ip', limit: 5, period: 20.seconds) do |req| if req.path == '/login' && req.post? req.ip end end |
Incluindo um IP na safelist
1 – Inclua no final do seu initializer rack_attack:
1 2 3 |
Rack::Attack.safelist('allow from localhost') do |req| req.ip == '127.0.0.1' end |
Bloqueando um IP
1 – Inclua no final do seu initializer rack_attack:
1 |
Rack::Attack.blocklist_ip("1.2.3.4") |
Conclusão
Curtiu aprender como deixar seu APP Rails mais seguro? Para saber mais sobre a gem rack-attack e sobre como criar uma proteção mais customizada para o seu APP visite o repositório da gem clicando aqui.
Muito obrigado por assistir ao Screencast, se você gostou deixa um comentário e envia o link desse tutorial para seus amigos(as) ou nas comunidades de programação que você frequenta.
Grande abraço,
Leonardo Scorza

‘
‘ or 1=1