Sobes.tech
Назад к вопросам
Senior
4

Как работали с PostgreSQL? Как защищались от SQL инъекций?

Компании, где спрашивали
А7

Ответ от нейросети

sobes.tech AI

Для работы с PostgreSQL в Go обычно используют пакет database/sql вместе с драйвером, например, lib/pq или pgx. Основной способ защиты от SQL-инъекций — использование подготовленных выражений (prepared statements) и параметризированных запросов. Вместо конкатенации строк с параметрами, параметры передаются отдельно, что позволяет драйверу корректно экранировать значения.

Пример:

query := `SELECT * FROM users WHERE email = $1`
row := db.QueryRow(query, userEmail)

Здесь $1 — плейсхолдер, а userEmail — параметр, который драйвер безопасно подставит в запрос.

Также важно избегать динамического формирования SQL с помощью строк, особенно с пользовательскими данными, и использовать ORM или query builder, которые автоматически обрабатывают параметры.