/ TL;DR

Cada assistente de código tem um padrão de falha diferente. Guia comparativo de auditoria com o que Cursor esquece, o que Copilot repete, o que v0 escancara e o que Windsurf entrega bem — baseado em 500 apps analisados pela Varredura.

Cada assistente de código foi treinado com dataset diferente, com pesos otimizados para objetivos diferentes, e por isso erra em direções previsíveis. Este guia mapeia o padrão de falha de cada um e o que auditar primeiro em código gerado por Cursor, Copilot, v0 e Windsurf.

Cursor

Ponto forte: contexto de repositório inteiro. Gera código coerente com a base existente.

Falhas mais comuns:

  • Copia padrões inseguros que já existiam no repo (spread de vulnerabilidade legada).
  • Aceita instruções em comentários que não deveria (// TODO: skip auth for now).
  • Em modo "agent", executa migrations sem revisar — já vimos DROP TABLE em produção.

Auditar primeiro: rotas novas (validação + autorização), migrations, mudanças em middleware de auth.

GitHub Copilot

Ponto forte: velocidade de completar boilerplate.

Falhas mais comuns:

  • Repete padrões antigos da base de treino (md5, mysqli_query, JWT sem expiração).
  • Aceita nomes de variáveis sensíveis (password, token) sem tratamento adequado.
  • Em ambiente com muito código legado, herda os vícios do legado.

Auditar primeiro: hashing de senha, queries SQL, sanitização de HTML.

v0 (Vercel)

Ponto forte: UI React polida rapidamente.

Falhas mais comuns:

  • CORS aberto por default no template.
  • useEffect com fetch sem sanitização de resposta.
  • Estados client-side com dados sensíveis (localStorage).
  • APIs geradas sem rate limit nem auth.

Auditar primeiro: rotas Next.js /api/*, chamadas externas do client, dados em storage do browser.

Windsurf

Ponto forte: refactor bem estruturado, entende múltiplos arquivos.

Falhas mais comuns:

  • Adere ao pattern do arquivo sendo editado — se o arquivo é inseguro, mantém.
  • Menor tendência a curl | bash, mas ainda aceita URLs de fontes não verificadas em setup scripts.

Auditar primeiro: cross-file changes que possam ter movido lógica de auth.

Checklist universal

Independente do assistente, todo código gerado por IA precisa passar por:

  1. Validação de input (Zod/Joi/Pydantic) antes de qualquer uso.
  2. Query parametrizada, nunca concat de string.
  3. Rate limit em rota pública.
  4. CORS restrito (não *).
  5. Secret em variável de ambiente, nunca no código.
  6. Log sem PII bruto.
  7. Confirmação humana para ações destrutivas.
  8. Teste automático que quebra o input adversarial.

Dados de 500 apps

Nas auditorias da Varredura em 2026:

  • Cursor gerou apps com 34% de falhas de autorização (IDOR).
  • Copilot gerou apps com 41% de queries brutas concatenadas.
  • v0 gerou apps com 68% de CORS aberto em rotas API.
  • Windsurf gerou apps com 28% de secrets hardcoded.

Nenhum está livre. A questão é onde procurar.

TL;DR

  • Cursor: rotas + autorização + migrations.
  • Copilot: SQL + senhas + JWT.
  • v0: CORS + rotas API + storage do browser.
  • Windsurf: cross-file auth logic.
  • Todos: checklist universal + varredura em produção.

Rode uma varredura no app que sua IA construiu.

EV

Equipe Varredura

Time de pesquisa de segurança · Varredura

Sua app em produção passa por essa análise?

Rode uma varredura autônoma em ~60 segundos. Sem cadastro.

Analisar minha aplicação →