Junior — Middle
Kādas metodes tiek izmantotas, lai novērstu SQL-injekcijas līdzīgas ievainojamības, strādājot ar datu bāzēm?
sobes.tech AI
Atbilde no AI
Lai novērstu SQL injekcijas Go darbā ar datu bāzēm, tiek izmantotas šādas metodes:
-
Parametrizētas vaicājumi (gatavi izteikumi) — vietā, lai savienotu virknes ar SQL vaicājumu un datiem, parametri tiek nodoti atsevišķi. Tas novērš ļaunprātīga koda ievadīšanu.
-
ORM vai bibliotēku izmantošana, kas automātiski escape-ē datus — piemēram, GORM.
-
Ievades datu validācija un tīrīšana — lai gan tas neaizstāj parametrizāciju, tas palīdz samazināt riskus.
Piemērs parametrizētam vaicājumam, izmantojot standarta bibliotēku database/sql:
var username string
err := db.QueryRow("SELECT name FROM users WHERE id = ?", userID).Scan(&username)
if err != nil {
// kļūdas apstrāde
}
Šeit ? ir parametrs, kas droši ievadīts vaicājumā, novēršot injekciju iespēju.