1
resposta

SQL Injection

conexao.query(`INSERT INTO Servicos(nome, preco) VALUES('${nome}', '${preco}')`, (erro, resultados) => {
...
   })
 }
}

Isso não é uma interpolação simples? Não abre espaço pra SQL Injection? Eu acho que essa resposta deveria ser atualizada pra usar placeholders, dessa forma:

conexao.query(`INSERT INTO Servicos(nome, preco) VALUES (?, ?)`, [nome, preco], (erro, resultados) => { ... })
1 resposta

Olá, tudo bem com você?

Peço desculpa pela demora para responder o seu tópico.

Ótima observação! De fato, a interpolação simples pode abrir espaço para ataques de SQL Injection, pois permite que o usuário insira comandos SQL maliciosos no código.

A solução que você sugeriu, utilizando placeholders, é uma boa prática de segurança para evitar esse tipo de ataque. Os placeholders são preenchidos com os valores passados como parâmetros, garantindo que eles sejam tratados apenas como valores, sem a possibilidade de executar comandos maliciosos.

Portanto, substituir a interpolação simples pelos placeholders é uma medida importante para garantir a segurança da sua aplicação. Mas no caso da aula se trata de um conteúdo introdutório, logo por apresentar uma sintaxe mais simples e de fácil compreensão, a primeira forma se torna melhor.

Caso durante os seus estudos você tenha dúvidas ou problemas, recorra ao fórum, estaremos aqui para ajudá-lo.

Abraços e bons estudos!