SQL Injection é uma técnica maliciosa utilizada para explorar vulnerabilidades em sistemas que interagem com bancos de dados. O ataque ocorre quando comandos SQL são injetados em entradas de dados, permitindo que o invasor manipule consultas e acesse informações sensíveis. Essa vulnerabilidade normalmente resulta de uma validação inadequada das entradas do usuário. A prevenção exige boas práticas, como o uso de consultas parametrizadas e a sanitização dos dados de entrada.
Exemplo
SELECT * FROM usuarios WHERE nome = 'admin' AND senha = '' OR '1'='1';
Neste exemplo, um invasor pode explorar uma falha no sistema, inserindo valores como ” OR ‘1’=’1′ no campo de senha. Isso faz com que a consulta SQL seja sempre verdadeira (‘1’=’1’), retornando todos os registros da tabela usuarios. Para evitar esse tipo de ataque, recomenda-se o uso de prepared statements e bindings para substituir variáveis na consulta de forma segura, evitando a interpretação maliciosa dos dados fornecidos pelo usuário.