🟢 Лёгкий · 1 очк. SQL
Какой код уязвим для SQL-инъекции в Go?
A db.Query("SELECT * FROM users WHERE id = $1", id)
B db.Query("SELECT * FROM users WHERE id = " + id)
C Оба безопасны
D Оба уязвимы
Объяснение вопроса

Уязвим код, который подставляет пользовательский ввод в SQL через конкатенацию или Sprintf. Параметризованные запросы с плейсхолдерами ($1, ?) безопасны - драйвер передаёт параметры отдельно. Всегда используйте плейсхолдеры; никогда не вставляйте данные в текст запроса через fmt.Sprintf или +.

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