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