Sobes.tech
Back to questions
Junior — Middle
84

Какие методы используют для предотвращения уязвимостей типа SQL-инъекций при работе с базой данных?

Companies where asked
Betera Group

Answer from AI

sobes.tech AI

Для предотвращения SQL-инъекций в Go при работе с базой данных используют следующие методы:

  • Параметризованные запросы (prepared statements) — вместо конкатенации строк с SQL-запросом и данными используют параметры, которые передаются отдельно. Это предотвращает внедрение вредоносного кода.

  • Использование ORM или библиотек, которые автоматически экранируют данные — например, GORM.

  • Валидация и очистка входных данных — хотя это не заменяет параметризацию, помогает снизить риски.

Пример параметризованного запроса с использованием стандартной библиотеки database/sql:

var username string
err := db.QueryRow("SELECT name FROM users WHERE id = ?", userID).Scan(&username)
if err != nil {
    // обработка ошибки
}

Здесь ? — это параметр, который безопасно подставляется в запрос, исключая возможность инъекции.