Защита от SQL-инъекций в Go.

Ответ

Никогда не подставлять пользовательский ввод в строку запроса. Использовать плейсхолдеры: db.QueryContext(ctx, "SELECT * FROM users WHERE id = $1", id). Параметры передавать как аргументы Exec/Query; драйвер экранирует. Проверять и валидировать типы (например, id - целое). ORM и query builder с параметризацией тоже защищают при правильном использовании.

// плохо: "SELECT * FROM users WHERE id = " + id
// хорошо:
db.QueryRowContext(ctx, "SELECT * FROM users WHERE id = $1", id)
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.