Teste de segurança para código escrito com opencode
opencode trabalha no terminal e altera o repositório inteiro. O código compila e o app sobe; a fronteira de confiança não vem junto.
Em uma frase: opencode altera o repositório inteiro; a checagem de sessão não vem junto por padrão.
Por que isso acontece no opencode
O agente otimiza para a tarefa funcionar. Sem um pedido explícito de autorização, as rotas nascem sem checagem de sessão e os segredos ficam onde for mais rápido.
O que costuma ficar aberto
- Handler sem checagem. A rota responde sem verificar quem chamou.
- Segredo em log ou bundle. Credencial aparece onde não deveria.
- CORS permissivo. Origem arbitrária lê resposta autenticada.
- Validação ausente. Payload inválido é aceito e persistido.
- Dependência não revisada. Pacote entrou sem checar origem e idade.
Exemplo real
Rota administrativa aberta
GET /api/admin/users HTTP/2
(sem token)
200 · lista de usuários e e-mailsO handler foi gerado sem verificação de papel; o front escondia o link.
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.
Entram no escopo rotas administrativas, validação server-side, CORS, sourcemaps, logs com segredo e limite de uso em endpoints de IA.
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 o app em aba anônima
- Chame as rotas de dados
- Force erro e leia a resposta
- Dispare 20 requisições
O que o teste não cobre
- Não cobre lógica de negócio
- Não revisa arquitetura
- 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
- O agente alterou rotas e componentes juntos.
- Não existe teste de autorização no repositório.
- O front esconde ações que a API ainda aceita.
Checklist rápido
- Auth por handler
- Segredo em log
- CORS restrito
- Validação server-side
- Rate limit
- Dependência revisada
O que fazer agora
- Checar sessão e papel no início de cada handler.
- Mover segredo para variável de servidor e rotacionar.
- Aplicar rate limit e validar payload.
Veja também todas as verificações e o checklist de 12 itens.