Segurança: rack-attack
Este curso trata de limitação de taxa numa aplicação Rails, a partir dos endpoints de login, cadastro e redefinição de senha do próprio repositório. Ele explica o credential stuffing e outros tráfegos automatizados, e onde os limites podem ficar: na borda, no proxy ou na aplicação. Compara o rate_limit embutido do Rails com o middleware Rack::Attack e as regras de safelist, blocklist, throttle e track. Também aborda a escolha do que contar, o armazenamento compartilhado dos contadores, a resposta 429 com Retry-After, o registro das limitações e a implantação das regras primeiro em modo de rastreio.
O que você vai aprender
- ✓Por que o credential stuffing pede limite de tentativas, e o que a limitação de taxa não impede
- ✓Como o rate_limit do Rails e o Rack::Attack diferem, e quando usar os dois
- ✓Como escolher o discriminador: IP, conta, chave de API ou sub-rede
- ✓Por que o armazenamento dos contadores precisa ser compartilhado e aguentar um ataque
- ✓Como responder com 429 e Retry-After, e registrar limitações pelo nome da regra
- ✓Como implantar limites em modo de rastreio e testá-los com o limitador ligado
O ataque que você vai realmente sofrer
Leia a ação de login deste repositório:
Ler a aula completa grátis →Currículo
7 aulasO ataque que você vai realmente sofrer
Explica o credential stuffing e outros tráfegos automatizados, o que a limitação de taxa faz e não faz, e as três camadas.
O rate_limit embutido do Rails
Mostra o método rate_limit embutido do Rails, suas opções, o uso na redefinição de senha e seus limites.
Fundamentos do Rack::Attack
Apresenta o Rack::Attack como middleware, as primitivas safelist, blocklist, throttle e track, e uma configuração inicial.
Escolhendo o discriminador
Compara contar por IP, pela conta atacada, por chave de API ou sub-rede, e contar falhas em vez de requisições.
O armazenamento, e o que ele custa
Analisa onde os contadores moram, os problemas de stores no banco ou por processo, janelas fixas e falhar abrindo ou fechando.
Respostas, observabilidade e ajuste
Trata de respostas 429 com Retry-After, logs e métricas de limitação, modo de rastreio, escolha de limites e testes.
Juntando tudo: protegendo este app
Monta as regras para os endpoints de autenticação desta aplicação, uma implantação em etapas via track e o que os limites não resolvem.