1
resposta

Risco de SQL injection no buscaPorId

Confesso que eu não sei muito sobre o assunto, mas acredito não ser uma boa ideia usar template literals em SQL (ex.: `SELECT * FROM XXX WHERE id = ${id}`).

No curso já foi apresentado o uso do placeholder ? no meio do comando pra substituir um argumento, e acredito que essa seja a forma mais segura de montar queries.

No caso dessa aula, a entrada passada pelo usuário já passou pelo parseInt() e portanto já foi sanitizada, mas acho bom apontar que caso não houvesse sanitização e validação da entrada esta aplicação seria vulnerável a injeção de SQL. Com isso, um invasor conseguiria alterar entradas do banco e possivelmente apagar toda a tabela.

1 resposta

Eduardo, tudo bom?

Opinião, os códigos dos cursos te dão uma direção de para onde seguir. Não usaria esses códigos em produção, assim como você notou de forma crítica, eles têm alguns gaps que podem causar problemas.

Isso para todos os cursos, de outras plataformas. Pegar um código de terceiro sem uma prévia análise e colocar em produção é um risco bem alto.