SQL injection em 2026: ainda acontece, e é assim que se previne
SQL injection é uma falha antiga, mas continua aparecendo em sistemas novos — principalmente em filtros e buscas montados à mão. Veja como ela acontece e como fechar a porta.
Por Equipe We Codex3 min de leitura
É uma das vulnerabilidades mais conhecidas da história da web e, mesmo assim, aparece em auditorias todos os anos. O motivo é simples: basta uma consulta montada concatenando texto do usuário para abrir o banco inteiro.
Como acontece
// NUNCA faça isso
const sql = `SELECT * FROM clientes WHERE email = '${req.query.email}'`Se alguém enviar ' OR '1'='1, a consulta devolve todos os clientes. Com variações, é possível apagar tabelas ou extrair senhas.
A correção: consultas parametrizadas
const { rows } = await db.query('SELECT * FROM clientes WHERE email = $1', [email])O valor viaja separado do comando. O banco nunca o interpreta como SQL. ORMs e query builders fazem isso por padrão — o risco volta quando alguém usa a função de "SQL cru" para um filtro complexo.
Onde ainda escapa
- Ordenação dinâmica:
ORDER BY ${campo}não aceita parâmetro. Use uma lista de campos permitidos. - Buscas com LIKE montadas à mão.
- Relatórios com filtros combináveis escritos às pressas.
Camadas extras
- 1.Validação rigorosa da entrada (Validação rigorosa de dados: prevenindo falhas de segurança e dados inconsistentes com Zod e TypeScript).
- 2.Usuário do banco com permissões mínimas: a aplicação não precisa de
DROP TABLE. - 3.Erros do banco nunca devolvidos ao cliente (Tratamento global de erros no Node.js: respostas consistentes e logs úteis).
Bancos de documentos têm seu próprio tipo de injeção — veja NoSQL injection: o risco que pega quem usa MongoDB.
A We Codex revisa e protege sistemas na frente de Segurança Anti-Hacker. Fale com a gente.
- SQL Injection
- Segurança
- Banco de dados
- Node.js
Resolver de vez, com quem faz isso todo dia
Quer saber quão exposto está o seu sistema hoje?
Este artigo mostra o caminho. A implementação sob medida — o detalhe que muda o resultado no seu caso — é o trabalho da We Codex, empresa de engenharia do grupo Wocom.
Continue lendo
Tudo sobre Segurança- Ler artigo
Segurança3 min
NoSQL injection: o risco que pega quem usa MongoDB
Quem usa MongoDB costuma achar que está livre de injeção. Não está. Veja como um objeto mal validado pode burlar o login e como se proteger.
- Ler artigo
Segurança3 min
Teste de invasão: quando vale contratar
Teste de invasão é caro e não é para todo momento. Quando ele realmente vale o investimento e o que fazer antes para não desperdiçá-lo.
- Ler artigo
Backend & APIs3 min
Validação rigorosa de dados: prevenindo falhas de segurança e dados inconsistentes com Zod e TypeScript
TypeScript não valida o que chega da internet. Veja como usar Zod para barrar dados inválidos na entrada da API e do formulário — com um único esquema.