Junior — Middle
Ma'lumotlar bazalari bilan ishlashda SQL-in'ektsiya kabi zaifliklarni oldini olish uchun qanday usullar qo'llaniladi?
sobes.tech AI
AIdan javob
Go bilanalar bilan ishlashda SQL hujumlarini oldini olish uchun quyidagi usullar qo'llaniladi:
-
Parametrli so'rovlar (tayyor bayonotlar) — SQL so'rovi va ma'lumotlar bilan satrlarni qo'shish o'rniga, parametrlar alohida uzatiladi. Bu zararli kodning kiritilishini oldini oladi.
-
Ma'lumotlarni avtomatik tarzda qochirish uchun ORM yoki kutubxonalar foydalanish — masalan, GORM.
-
Kiritish ma'lumotlarini tekshirish va tozalash — bu parametrizatsiyani o'rnini bosmaydi, lekin xavf-xatarning kamayishiga yordam beradi.
Standart kutubxona database/sql yordamida parametrli so'rov misoli:
var username string
err := db.QueryRow("SELECT name FROM users WHERE id = ?", userID).Scan(&username)
if err != nil {
// xatolikni qayta ishlash
}
Bu yerda, ? so'rovga xavfsiz tarzda kiritilgan parametr bo'lib, injektsiya ehtimolini kamaytiradi.