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