Junior — Middle
Ilovaga SQL kodlarini joylash usulining nima ekanligini va uni qanday oldini olish mumkinligini tushuntiring.
sobes.tech AI
AIdan javob
SQL injektsiyasi — bu hujum usuli bo‘lib, unda hujumchi foydalanuvchi tomonidan kiritilgan ma'lumotlar orqali zararli SQL kodini ma'lumotlar bazasiga qo‘shadi yoki joylashtiradi. Bu, ruxsatsiz ma'lumotlarga kirish, ularni o‘zgartirish yoki o‘chirish imkonini beradi.
Go dasturlarida SQL injektsiyalarini oldini olish uchun:
- Parametrizatsiyalangan tayyor bayonotlar (prepared statements) dan foydalaning, bu yerda qiymatlar SQL kodidan alohida joylashtiriladi.
- Foydalanuvchi ma'lumotlari bilan SQL so‘rovlarini yaratishda satrlarni birlashtirishdan saqlaning.
- Avtomatik ravishda parametrlarni boshqaradigan ORM kutubxonalaridan foydalaning.
- Foydalanuvchi kiritmalarini tekshiring va filtrlashni amalga oshiring.
Go tilida tayyor bayonotdan foydalanish misoli:
import (
"database/sql"
_ "github.com/lib/pq"
)
func getUserByEmail(db *sql.DB, email string) (*User, error) {
var user User
err := db.QueryRow("SELECT id, name FROM users WHERE email = $1", email).Scan(&user.ID, &user.Name)
if err != nil {
return nil, err
}
return &user, nil
}
Bu yerda, email parametri alohida yuboriladi, bu zararli SQL kodini joylashtirish imkoniyatini oldini oladi.