O que é SQL injection?
SQL injection é um tipo de falha em que um sistema aceita um texto malicioso no lugar de um dado comum e acaba executando esse texto como comando no banco de dados. Em termos simples, é como enganar o sistema para que ele obedeça a uma instrução escondida dentro de um campo de formulário.
Na prática, aplicações web montam consultas ao banco de dados juntando o que o usuário digita, como nome ou senha, dentro de um comando SQL. Quando essa junção não é feita com cuidado, caracteres especiais podem alterar a lógica da consulta, permitindo ler, alterar ou apagar informações que não deveriam ser acessíveis.
Uma analogia simples é pensar em um atendente de banco que recebe um bilhete com o nome do cliente e, em vez de apenas procurar o nome na lista, lê também uma frase escrita no papel que manda ele abrir o cofre. O atendente não deveria obedecer a instruções que vêm no lugar de um dado, mas obedece porque não consegue distinguir uma coisa da outra.
Essa falha é antiga, mas continua aparecendo porque envolve descuido comum no desenvolvimento. A proteção principal é tratar todo dado externo como texto puro, usando consultas parametrizadas, validação de entrada e o princípio do menor privilégio no banco. Atualizações de segurança e revisões de código também reduzem muito o risco.