Назад к вопросам
Junior — Middle
85
Какие методы используют для предотвращения уязвимостей типа SQL-инъекций при работе с базой данных?
Компании, где спрашивали
Betera Group
Ответ от нейросети
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 {
// обработка ошибки
}
Здесь ? — это параметр, который безопасно подставляется в запрос, исключая возможность инъекции.