golang中的查询字符串是否安全?

时间:2014-08-22 14:07:39

标签: go query-string

考虑以下提取URL上传递的URLParam userId:

userId := http.Request.URL.Query().Get("userId")

这是安全的(转义并准备在数据库调用中使用),或者我是否需要在使用之前将其转义/清理它?

1 个答案:

答案 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)