Sobes.tech
Junior — Middle

Маалыматтар базасымен иштөөдө SQL-инъекция сыяктуу кемчиликтерди алдын алуу үчүн кайсы ыкмалар колдонулат?

sobes.tech AI

AIден жооп

Goда маалымат базасы менен иштөөдө SQL инжекцияларын алдын алуу үчүн төмөнкү ыкмалар колдонулат:

  • Параметрлүү суроолор (дайындалган билдирүүлөр) — SQL суроо жана маалыматтар менен саптарды бириктирүүнүн ордуна, параметрлерди бөлөк өткөрүп беришет. Бул зыяндуу коддун киргизилишинин алдын алат.

  • ORM же китепканалардын колдонушу, автоматтык түрдө маалыматтарды escape кылган — мисалы, GORM.

  • Кирүү маалыматтарын текшерүү жана тазалоо — бул параметрлүү кылууну алмаштырбайт, бирок коркунучтарды азайтууга жардам берет.

Стандарттык китепкана database/sql колдонуп, параметрлүү суроо мисалы:

var username string
err := db.QueryRow("SELECT name FROM users WHERE id = ?", userID).Scan(&username)
if err != nil {
    // ката иштетүү
}

Бул жерде, ? — бул коопсуз түрдө суроого киргизилген параметр, ал инжекция мүмкүнчүлүгүн жоготот.