Junior — Middle
Jaké metody se používají k prevenci zranitelností typu SQL-injekce při práci s databázemi?
sobes.tech AI
Odpověď od AI
Pro prevenci SQL injection v Go při práci s databázemi se používají následující metody:
-
Parametrizované dotazy (připravené příkazy) — místo spojování řetězců s SQL dotazem a daty se používají parametry, které jsou předávány odděleně. To zabraňuje vkládání škodlivého kódu.
-
Použití ORM nebo knihoven, které automaticky escapují data — například GORM.
-
Validace a čištění vstupních dat — i když to nenahradí parametrizaci, pomáhá snížit rizika.
Příklad parametrizovaného dotazu s použitím standardní knihovny database/sql:
var username string
err := db.QueryRow("SELECT name FROM users WHERE id = ?", userID).Scan(&username)
if err != nil {
// zpracování chyby
}
Zde je ? parametr, který je bezpečně vložen do dotazu, čímž se předchází injekcím.