Sobes.tech
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 {
    // коркарди хато
}

Ин ҷо, ? параметр аст, ки бехатар ворид мешавад ба пурсиш, ва имконияти ворид кардани вирусро кам мекунад.