Junior — Middle
Welche Methoden werden verwendet, um Schwachstellen wie SQL-Injektionen bei der Arbeit mit Datenbanken zu verhindern?
sobes.tech KI
Antwort von AI
Um SQL-Injection in Go bei der Arbeit mit Datenbanken zu verhindern, werden folgende Methoden verwendet:
-
Parametrisierte Abfragen (prepared statements) — anstelle von String-Konkatenation mit SQL-Abfrage und Daten werden Parameter verwendet, die separat übergeben werden. Dies verhindert die Einschleusung von schädlichem Code.
-
Verwendung von ORM oder Bibliotheken, die Daten automatisch escapen — zum Beispiel GORM.
-
Validierung und Bereinigung der Eingabedaten — obwohl dies die Parametrisierung nicht ersetzt, hilft es, Risiken zu verringern.
Beispiel für eine parametrisierte Abfrage mit der Standardbibliothek database/sql:
var username string
err := db.QueryRow("SELECT name FROM users WHERE id = ?", userID).Scan(&username)
if err != nil {
// Fehlerbehandlung
}
Hier ist ? ein Parameter, der sicher in die Abfrage eingefügt wird, um Injection zu vermeiden.