𝗧𝗵𝗲 𝗗𝗮𝘆 𝗪𝗲 𝗙𝗶𝘅𝗲𝗱 𝗢𝘂𝗿 𝗦𝗶𝗴𝗻𝘂𝗽 𝗣𝗶𝗽𝗲𝗹𝗶𝗻𝗲 -> 𝗢 𝗗𝗶𝗮 𝗲𝗺 𝗾𝘂𝗲 𝗖𝗼𝗿𝗿𝗶𝗴𝗶𝗺𝗼𝘀 𝗡𝗼𝘀𝘀𝗼 𝗣𝗶𝗽𝗲𝗹𝗶𝗻𝗲 𝗱𝗲 𝗖𝗮𝗱𝗮𝘀𝘁𝗿𝗼
Nossos números de cadastro cresciam toda semana. A equipe estava animada. Mas os dados pareciam errados. Os usuários nunca voltavam. Os endereços de e-mail pareciam estranhos. Nossa taxa de ativação caiu.
Analisei os dados. Não encontrei crescimento. Encontrei ruído.
O Problema
Executei uma consulta para agrupar os cadastros por endereço IP. Um único endereço IP registrou centenas de contas em 24 horas. Ele usava a mesma impressão digital do navegador (browser fingerprint). Um script estava atingindo nosso endpoint de registro. Ele usava domínios de e-mail descartáveis. Era um bot, não uma pessoa.
Nosso pipeline de cadastro estava totalmente aberto.
A Solução
Construímos três camadas de proteção em um único sprint.
Camada 1: Throttling
Usamos dois tipos de rate limiting.
- Throttling por IP: Limitamos as tentativas de cadastro de um único IP em uma janela curta.
- Throttling por domínio: Limitamos os cadastros do mesmo domínio de e-mail em uma janela mais longa. Isso impede bots que usam IPs diferentes com o mesmo domínio.
Camada 2: Blocklists
- Domínios de e-mail bloqueados: Rejeitamos qualquer registro que utilize domínios de e-mail descartáveis.
- User agents bloqueados: Rejeitamos requisições de ferramentas que não são navegadores. Não fornecemos detalhes ao atacante.
Camada 3: IP Blocklist
Alguns IPs são persistentes. Eles abusam de várias partes do nosso sistema. Usamos uma blocklist rígida. Esses IPs são rejeitados em todas as requisições. O middleware os interrompe imediatamente.
Os Resultados
Antes da correção:
- Um IP criava centenas de contas em um dia.
- Domínios descartáveis compunham a maioria dos cadastros.
- Contas falsas reduziam nossa taxa de ativação.
- Nossos dados estavam errados.
Depois da correção:
- A criação em massa de registros (registration farming) caiu para zero.
- Os cadastros via domínios descartáveis pararam.
- Os números de cadastro mostraram intenção humana real.
- Nossa taxa de ativação se recuperou.
Lições Aprendidas
- O sinal importa mais do que o volume. Bots tornam métricas como retenção e receita pouco confiáveis.
- Pequenas correções de código resolvem grandes problemas. Usamos três mecanismos simples.
- Camadas são necessárias. Um único limite não é suficiente. Uma combinação cobre mais terreno.
- Controle suas respostas. Dê feedback aos usuários legítimos. Dê silêncio aos agentes maliciosos.
Crescimento não é apenas sobre conseguir usuários. É sobre conseguir usuários reais. Suas decisões de produto dependem de bons dados. Esses dados começam no seu endpoint de registro.
Fonte: https://dev.to/ogeobubu/the-day-we-fixed-our-signup-pipeline-3664