Segurança de aplicativo: o que checar antes de escalar

7 min de leitura

Segurança de aplicativo, para quem já tem usuário no ar, é a lista curta de coisas que precisam estar certas antes de o app crescer: quem acessa o quê, como o login funciona, onde ficam as chaves, quais bibliotecas entram no código, o que fica registrado, se existe backup que volta e se os dados pessoais estão tratados como a LGPD pede. A resposta rápida é esta: se algum desses sete pontos está em aberto, crescer multiplica o problema junto com a base de usuários.

Este texto é para quem construiu o produto rápido, muitas vezes com ferramentas de IA, e agora tem gente pagando ou dado de terceiro guardado no banco. O que segue é o roteiro que a gente usa para olhar um app nessa fase.

Por que o risco cresce junto com o app

No protótipo, uma falha de acesso expõe dado de teste. Com mil usuários, expõe mil cadastros reais, com nome, e-mail, telefone e às vezes documento. O código pode ser exatamente o mesmo. O que mudou foi o tamanho do estrago.

Existe também um efeito de atenção. App pequeno passa despercebido. App que aparece em anúncio, ganha imprensa ou entra em processo de venda passa a ser olhado por mais gente, e parte dessa gente procura exatamente o que ficou aberto.

Por isso a hora certa de revisar é antes do empurrão de crescimento. Depois dele, cada correção precisa ser feita com o sistema cheio de gente usando.

A referência: o OWASP Top 10

A OWASP Foundation, organização sem fins lucrativos dedicada a segurança de software, mantém o OWASP Top 10, a lista das categorias de risco mais comuns em aplicações web. A edição de 2025 traz, em primeiro lugar, o controle de acesso quebrado. Logo depois vêm configuração de segurança errada e falhas na cadeia de fornecimento de software, que é o nome técnico para o risco das bibliotecas e pacotes que o seu código importa.

A lista serve como mapa mínimo. Ela não substitui olhar o seu app em particular, mas ajuda a não esquecer as categorias onde a maior parte dos incidentes acontece. Os sete pontos abaixo seguem essa lógica, traduzida para o que costuma aparecer num produto recém-lançado.

Os sete pontos para checar antes de escalar

1. Autorização: quem pode ver e mexer em quê

É o ponto que mais falha, e o mais fácil de testar. Entre com um usuário comum, abra um pedido, uma fatura ou um perfil e troque o número que aparece na URL ou na requisição. Se o sistema mostrar o registro de outra pessoa, o controle de acesso está quebrado.

Em apps que usam Supabase, a proteção costuma depender da Row Level Security ativa e com política escrita em cada tabela. No Firebase, das regras de segurança do Firestore e do Storage. Tabela sem política ou regra liberada para qualquer leitura deixa o banco aberto para quem descobrir o endereço, mesmo que a tela do app pareça fechada.

2. Autenticação: como a pessoa prova quem é

Aqui entram senha, login social, recuperação de conta e sessão. Perguntas que valem a checagem: existe limite de tentativas de login? O link de recuperação de senha expira? A sessão cai depois de um tempo sem uso? Usuário com papel de administrador tem segundo fator de autenticação?

Sempre que possível, use um provedor de autenticação conhecido em vez de uma rotina escrita do zero. Menos código próprio nessa área significa menos lugar para errar.

3. Segredos: onde ficam as chaves

Chave de API, senha de banco e token de serviço precisam morar no servidor. O erro clássico em app construído rápido é a chave ir parar no código que roda no navegador. Em projetos com Next.js, toda variável com prefixo NEXT_PUBLIC_ é enviada ao navegador. Em projetos com Vite, o mesmo vale para o prefixo VITE_.

Qualquer pessoa consegue abrir as ferramentas de desenvolvedor e ler o que chegou ali. Se a chave de serviço do banco ou do provedor de pagamento estiver nesse pacote, ela é pública. Vale também procurar chaves no histórico do repositório, porque apagar o arquivo não apaga o commit antigo. Chave que já vazou precisa ser trocada, e esconder não basta.

4. Dependências: o que o seu código importa

Um app moderno carrega centenas de pacotes de terceiros. Cada um pode ter vulnerabilidade conhecida ou, no pior caso, ter sido adulterado. Ferramentas como npm audit e o Dependabot do GitHub listam pacotes com falha publicada e sugerem a versão corrigida.

Ferramenta de IA às vezes sugere pacote com nome parecido com um pacote real, ou uma biblioteca abandonada há anos. Antes de aceitar, confira se o pacote existe, se tem manutenção recente e se é o que você pensa que é.

5. Logs e alerta: o que fica registrado

Se alguém entrar onde não devia, você fica sabendo? Login com falha em sequência, acesso administrativo, alteração de permissão e exportação de dados precisam deixar rastro, com data, usuário e origem. E alguém precisa receber um aviso quando algo fora do normal acontece.

O cuidado oposto também conta: log não pode guardar senha, token ou dado pessoal completo. Log vazado com esse conteúdo vira um segundo incidente.

6. Backup: o dado volta se precisar?

Backup que nunca foi restaurado é uma aposta. Confira com que frequência ele roda, onde fica guardado, por quanto tempo e, principalmente, se alguém já fez o teste de restaurar para um ambiente separado e medir quanto tempo levou.

Guarde ao menos uma cópia fora da conta principal. Se a conta for comprometida, o backup que mora nela vai junto.

7. LGPD: o dado pessoal está tratado como a lei pede

A Lei Geral de Proteção de Dados (Lei 13.709/2018) vale para qualquer empresa que trate dado pessoal, sem piso de porte. O artigo 46 pede medidas de segurança técnicas e administrativas para proteger esses dados. A Resolução CD/ANPD nº 15/2024 regulamenta a comunicação de incidente de segurança que possa causar risco ou dano relevante aos titulares, com prazo de três dias úteis para avisar a ANPD e as pessoas afetadas.

Na prática: saiba quais dados pessoais o app coleta e por quê, colete só o necessário, tenha política de privacidade que descreva o que acontece de verdade e deixe escrito, antes de precisar, quem decide e quem comunica se um incidente acontecer.

Onde apps feitos com IA costumam escorregar

Ferramentas como Lovable, Bolt, Cursor, Claude Code e Replit entregam um produto funcionando em tempo recorde. Elas fazem o que o pedido descreve, e o pedido raramente descreve regra de acesso, rotação de chave ou teste de restauração. O resultado é um padrão bem reconhecível, que a gente detalha no texto sobre levar um app feito com IA para produção.

PontoComo costuma aparecerComo checar
AutorizaçãoTabela sem política de acesso, filtro só na telaTrocar o ID na requisição com outro usuário
AutenticaçãoSem limite de tentativas, sessão que nunca expiraErrar a senha várias vezes e ver o que acontece
SegredosChave de serviço em variável públicaProcurar chaves no código enviado ao navegador
DependênciasPacote desatualizado ou inexistente sugeridoRodar npm audit e revisar a lista de pacotes
LogsNenhum registro de acesso administrativoPerguntar quem seria avisado de um acesso estranho
BackupBackup automático nunca restauradoRestaurar em ambiente separado e cronometrar
LGPDColeta de dado sem finalidade claraListar cada campo pessoal e o motivo de existir

Checklist rápido antes de escalar

Se só der tempo de fazer uma rodada, estas perguntas pegam a maior parte dos problemas:

  • Um usuário consegue ver ou alterar dado de outro trocando um identificador?
  • Todas as tabelas do banco têm regra de acesso escrita e ativa?
  • Alguma chave secreta aparece no código que vai para o navegador ou no histórico do repositório?
  • Existe limite de tentativas no login e segundo fator para administradores?
  • As dependências passaram por npm audit ou ferramenta equivalente no último mês?
  • Acesso administrativo e exportação de dados ficam registrados, e alguém recebe alerta?
  • O backup foi restaurado com sucesso pelo menos uma vez?
  • Existe um documento curto dizendo o que fazer, e em quanto tempo, se houver vazamento?

Resposta "não sei" conta como "não". Quase sempre ela aponta para o ponto que ninguém olhou.

Erros comuns na hora de corrigir

Corrigir só a tela. Esconder o botão para o usuário comum não protege nada se a API continua aceitando a chamada. A regra precisa estar no servidor ou no banco.

Trocar a chave e esquecer o histórico. Se a chave antiga continua válida no provedor, ela continua sendo um risco, mesmo fora do código atual.

Tratar segurança como tarefa única. Cada funcionalidade nova pode abrir uma porta. A revisão precisa voltar a cada mudança grande, com um checklist que o time consiga repetir sozinho.

Pedir para a mesma ferramenta revisar o que ela escreveu. Ajuda a achar erro de sintaxe e esquecimento óbvio. Para regra de negócio e desenho de acesso, o que funciona é alguém de fora lendo o código com método e testando o fluxo como um usuário mal-intencionado testaria.

O que muda quando o app passa na revisão

Um app revisado cresce com menos surpresa. O custo de infraestrutura fica previsível, a conversa com investidor ou comprador fica mais fácil quando alguém abre o repositório e o risco de ter que parar tudo para apagar incêndio cai muito.

Se a correção for feita por um time de fora, vale o mesmo cuidado de qualquer contratação técnica, e o nosso guia sobre como escolher uma software house ajuda a separar quem entende o problema de quem só executa o pedido. O que importa no fim é ter cada um dos sete pontos com uma resposta clara e documentada, que continue valendo quando o time mudar.

Perguntas frequentes

O que é o OWASP Top 10?
É uma lista mantida pela OWASP Foundation com as dez categorias de risco mais comuns em aplicações web, montada a partir de dados de testes reais. A edição de 2025 coloca o controle de acesso quebrado em primeiro lugar. Ela funciona como roteiro mínimo de revisão, e passar por ela não equivale a uma certificação.
App feito com Lovable, Bolt ou Cursor é inseguro?
Essas ferramentas geram código que funciona, e seguem o que foi pedido. Se ninguém pediu regra de acesso no banco, limite de tentativas no login ou chave fora do navegador, o código sai sem isso. O risco está no que ficou sem revisão, e isso vale também para código escrito à mão.
Quando fazer uma revisão de segurança no aplicativo?
Antes de três momentos: abrir para muito mais usuários, começar a cobrar ou guardar dado pessoal de terceiros, e apresentar o produto para investidor ou comprador. Depois disso, a cada mudança grande de arquitetura ou de fornecedor. Revisar depois de um vazamento sai mais caro em dinheiro, em tempo e em confiança.
O que a LGPD exige de um aplicativo pequeno?
A Lei 13.709/2018 vale para qualquer porte que trate dado pessoal. O artigo 46 pede medidas técnicas e administrativas para proteger esses dados, e a Resolução CD/ANPD nº 15/2024 define como e em quanto tempo comunicar um incidente relevante à ANPD e aos titulares. Ter base legal para cada dado coletado e saber quem acessa o quê já cobre boa parte do caminho.
Um scanner automático de vulnerabilidade resolve?
Ajuda a achar problema conhecido em dependência e configuração, e vale rodar sempre. Ele não entende a regra do seu negócio, então dificilmente percebe que um usuário comum consegue abrir o pedido de outro trocando um número na URL. Esse tipo de falha, que lidera o OWASP Top 10, aparece em revisão feita por gente que lê o código e testa o fluxo.

Seu app feito com IA aguenta usuário de verdade?

O Checkpoint é a revisão humana de código, banco e infraestrutura antes de escalar. Você sabe o que fecha agora e o que pode esperar.

Conhecer o Checkpoint

Continue lendo