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 {
// обработка ошибки
}
Здесь ? — это параметр, который безопасно подставляется в запрос, исключая возможность инъекции.