Sobes.tech
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.