devterview_$ iniciar simulação

SQL injection e por que prepared statements resolvem

FácilJúniorInjection

Pergunta

Como um ataque de SQL injection acontece, e por que usar prepared statements (queries parametrizadas) o previne?

Resposta esperada

A injeção acontece quando entrada do usuário é concatenada dentro do texto da query, então um valor como `'; DROP TABLE users; --` deixa de ser dado e vira comando. Prepared statements separam o comando dos dados: o driver envia primeiro a query com placeholders (`WHERE email = $1`) e depois os valores, que o banco trata sempre como dados literais, nunca como SQL — não importa o que tenha dentro. Escapar manualmente é frágil (encoding, casos de borda); parametrizar é a defesa correta. ORMs geralmente parametrizam por baixo, mas 'raw queries' com interpolação de string reabrem o buraco.

Por que perguntam isso

Pergunta básica e obrigatória pra backend. Resposta fraca diz 'sanitizar a entrada'; resposta certa é 'parametrizar' e sabe explicar por que a separação comando/dados fecha a classe inteira do ataque.

#sql-injection#owasp#prepared-statements
publicidade

Perguntas de acompanhamento

Relacionadas