在Go語言中,可以使用參數化查詢或預編譯語句來防止SQL注入。
示例代碼:
stmt, err := db.Prepare("SELECT * FROM users WHERE username = ? AND password = ?")
if err != nil {
log.Fatal(err)
}
defer stmt.Close()
rows, err := stmt.Query(username, password)
if err != nil {
log.Fatal(err)
}
defer rows.Close()
// 處理查詢結果
示例代碼:
stmt, err := db.Prepare("SELECT * FROM users WHERE username = ? AND password = ?")
if err != nil {
log.Fatal(err)
}
defer stmt.Close()
rows, err := stmt.Query(username, password)
if err != nil {
log.Fatal(err)
}
defer rows.Close()
// 處理查詢結果
無論使用參數化查詢還是預編譯語句,都可以防止SQL注入攻擊。但需要注意的是,使用預編譯語句可能會帶來一些額外的性能開銷,因此在性能要求較高的場景下,可以使用參數化查詢來獲得更好的性能。