Teste de segurança para apps feitos no v0
Apps do v0 nascem em Next.js, com route handlers que muitas vezes não verificam sessão. Testamos cada rota como se fôssemos o primeiro atacante a encontrá-la.
Em uma frase: No v0, route handlers nascem sem sessão: a rota responde para quem chamar.
Por que isso acontece no v0
O v0 gera Next.js com route handlers. Sem middleware de sessão, a rota responde para qualquer chamada — e o segredo do servidor pode acabar em um client component.
O que costuma ficar aberto
- Route handler sem sessão. A rota responde sem checar usuário.
- Chave no client component. Segredo de servidor embutido no bundle.
- CORS com credenciais. Origem arbitrária lê resposta autenticada.
- Server action sem validação. Ação aceita payload forjado.
- Sem limite em endpoint de IA. Custo ilimitado por requisição.
Exemplo real
Route handler administrativo sem sessão
GET /api/admin/users HTTP/2
(sem cookie)
200 · 412 registros · sem autenticaçãoO handler foi gerado sem verificação de sessão ou papel.
O que testamos
Vinte verificações: OWASP API Top 10 aplicado ao stack, mais configuração de banco, segredos no bundle, sourcemaps, CORS, rotas de debug e limite de uso. Onze rodam automatizadas; as demais entram na revisão manual de autorização.
O escopo inclui server actions sem validação, CORS com credenciais, rate limit em IA e inventário de rotas administrativas.
Como o laudo trata esse achado
A evidência entra com método, caminho e resposta redigida; a severidade considera o que um atacante obtém sem credencial; a correção é escrita para o seu stack, não como aviso genérico. O que não conseguimos reproduzir fica fora do laudo.
Como testar em 10 minutos
- Abra uma aba anônima
- Chame o handler sem cookie
- Envie payload forjado na action
- Teste a rota admin com conta comum
O que o teste não cobre
- Não cobre design de arquitetura
- Não substitui revisão de código
- Não garante ausência de falhas
Como funciona
- Call de 15 minutos para fechar escopo, alvo e autorização.
- Proposta com valor e prazo em 24h.
- Teste em 48h, com laudo e correção escrita.
Sinais de que você precisa
- Route handler responde sem sessão.
- Server action aceita payload forjado.
- Chave de servidor está em client component.
Checklist rápido
- Route handler com sessão
- Server action validada
- Chave no servidor
- CORS restrito
- Rate limit em IA
- Rotas admin protegidas
O que fazer agora
- Verificar sessão e papel no início de cada handler.
- Mover chave para o servidor e rotacionar.
- Aplicar rate limit em rotas de IA e login.
Veja também todas as verificações e o checklist de 12 itens.