~/questoes/ciberseguranca
Prepared statements são uma técnica de programação que separa o código SQL dos dados fornecidos pelo usuário, impedindo que entrada maliciosa seja interpretada como comando. Essa separação é a forma mais eficaz de neutralizar ataques de SQL injection, uma das vulnerabilidades mais comuns do OWASP Top 10.
Prepared statements funcionam enviando a estrutura da consulta SQL antes dos dados. O banco de dados já sabe exatamente qual é o comando e qual é o dado, tornando impossível um atacante injetar código SQL através de caracteres especiais ou comandos disfarçados.
Autenticação multi-fator protege contra acesso não autorizado a contas, mas não previne SQL injection. Um usuário autenticado ainda poderia explorar vulnerabilidades de injeção se a aplicação não tiver defesas adequadas.
Criptografia de senhas com AES-256 é importante para proteção de dados em repouso, mas não está relacionada à prevenção de SQL injection. Um atacante poderia explorar a injeção sem nem precisar acessar senhas.
Remover caracteres especiais é uma tentativa de validação fraca e facilmente contornável. Um atacante pode explorar SQL injection usando apenas caracteres alfanuméricos, e essa abordagem não é robusta como prepared statements.
Usar prepared statements com parâmetros separados é o padrão ouro de segurança contra SQL injection. O banco de dados trata dados como dados, nunca como comando, eliminando completamente esse vetor de ataque.