Junior — Middle
Какви методи се използват за предотвратяване на уязвимости като SQL-инжекции при работа с бази данни?
sobes.tech AI
Отговор от AI
За да предотвратите SQL инжекции в Go при работа с бази данни, използвайте следните методи:
-
Параметризирани заявки (подготвени изрази) — вместо да конкатенирате низове с SQL заявка и данни, използвайте параметри, които се предават отделно. Това предотвратява внедряването на злонамерен код.
-
Използване на ORM или библиотеки, които автоматично ескейпват данните — например GORM.
-
Валидиране и почистване на входните данни — макар и да не замества параметризацията, помага за намаляване на рисковете.
Пример за параметризирана заявка с използване на стандартната библиотека database/sql:
var username string
err := db.QueryRow("SELECT name FROM users WHERE id = ?", userID).Scan(&username)
if err != nil {
// обработка на грешката
}
Тук ? е параметър, който се вкарва безопасно в заявката, елиминирайки възможността за инжекция.