Junior — Middle
Quais métodos são utilizados para prevenir vulnerabilidades como injeções SQL ao trabalhar com bancos de dados?
sobes.tech IA
Resposta da IA
Para prevenir injeções de SQL em Go ao trabalhar com bases de dados, utilizam-se os seguintes métodos:
-
Consultas parametrizadas (declarações preparadas) — em vez de concatenar strings com a consulta SQL e os dados, usam-se parâmetros passados separadamente. Isto previne a injeção de código malicioso.
-
Uso de ORM ou bibliotecas que escapam automaticamente os dados — por exemplo, GORM.
-
Validação e limpeza dos dados de entrada — embora não substitua a parametrização, ajuda a reduzir os riscos.
Exemplo de consulta parametrizada usando a biblioteca padrão database/sql:
var username string
err := db.QueryRow("SELECT name FROM users WHERE id = ?", userID).Scan(&username)
if err != nil {
// tratamento do erro
}
Aqui, ? é um parâmetro que é inserido de forma segura na consulta, evitando a possibilidade de injeção.