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