考虑以下提取URL上传递的URLParam userId:
userId := http.Request.URL.Query().Get("userId")
这是安全的(转义并准备在数据库调用中使用),或者我是否需要在使用之前将其转义/清理它?
答案 0 :(得分:6)
这不是数据库安全的,您应该在将任何内容放入其中之前使用数据库驱动程序的转义。
你应该使用像sql.DB.Query()
这样的函数来传递参数并正确地转义它们。 http://golang.org/pkg/database/sql/#DB.Query
e.g。
userId := http.Request.URL.Query().Get("userId")
rows, err := db.Query("SELECT * FROM users WHERE id=?", userId)