Sobes.tech
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.