Junior — Middle
Koje metode koriste za sprečavanje ranjivosti poput SQL injekcija prilikom rada sa bazama podataka?
sobes.tech АИ
Одговор од АИ
Da biste sprečili SQL injekcije u Go prilikom rada sa bazama podataka, koriste se sledeće metode:
-
Parametrizovani upiti (pripremljene izjave) — umesto konkatenacije nizova sa SQL upitom i podacima, koriste se parametri koji se prosleđuju odvojeno. Ovo sprečava unošenje zlonamernog koda.
-
Korišćenje ORM ili biblioteka koje automatski escape-uju podatke — na primer, GORM.
-
Validacija i čišćenje ulaznih podataka — iako ovo ne zamenjuje parametrizaciju, pomaže u smanjenju rizika.
Primer parametrizovanog upita koristeći standardnu biblioteku database/sql:
var username string
err := db.QueryRow("SELECT name FROM users WHERE id = ?", userID).Scan(&username)
if err != nil {
// obrada greške
}
Ovde je ? parametar koji se sigurno ubacuje u upit, čime se izbegava injekcija.