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