Junior — Middle
Milyen módszereket alkalmaznak az SQL-injekciók típusú sebezhetőségek megelőzésére adatbázisokkal való munka során?
sobes.tech MI
Válasz az MI-től
A Go-ban az adatbázisokkal való munka során az SQL-injekciók megelőzése érdekében a következő módszereket alkalmazzák:
-
Paraméterezett lekérdezések (előkészített állítások) — ahelyett, hogy sztringeket fűznénk össze SQL-lekérdezéssel és adatokkal, külön paramétereket adunk át. Ez megakadályozza a rosszindulatú kód beszúrását.
-
Olyan ORM vagy könyvtárak használata, amelyek automatikusan escape-elik az adatokat — például GORM.
-
Bemeneti adatok validálása és tisztítása — bár ez nem helyettesíti a paraméterezést, segít csökkenteni a kockázatokat.
Példa paraméterezett lekérdezésre a standard library database/sql használatával:
var username string
err := db.QueryRow("SELECT name FROM users WHERE id = ?", userID).Scan(&username)
if err != nil {
// hiba kezelése
}
Itt a ? egy biztonságosan beszúrt paraméter, amely megakadályozza az injekciót.