Sobes.tech
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 {
    // обработка на грешката
}

Тук ? е параметър, който се вкарва безопасно в заявката, елиминирайки възможността за инжекция.