
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

Não perca nenhum conteúdo
Receba nosso resumo semanal com os novos posts, cursos, talks e vagas o/


‘ or 1=1
‘