diff --git a/lxDb/sql.go b/lxDb/sql.go index 6f96769..549d3a7 100644 --- a/lxDb/sql.go +++ b/lxDb/sql.go @@ -207,10 +207,6 @@ func Query(tx *gorm.DB, m interface{}, list interface{}, q *PaginationQuery) (er //} func SqlQuery(tx *gorm.DB, sql string, list interface{}, q *PaginationQuery, params ...interface{}) (err error) { - // 验证输入参数的安全性 - if !isSafeSQL(sql) { - return errors.New("检测到潜在的SQL注入风险") - } var builder strings.Builder builder.WriteString(sql) @@ -293,6 +289,10 @@ func SqlQuery(tx *gorm.DB, sql string, list interface{}, q *PaginationQuery, par // 安全地处理排序 - 使用白名单验证字段名 if q.OrderBy != "" { + // 验证输入参数的安全性 + if !isSafeSQL(sql) { + return errors.New("检测到潜在的SQL注入风险") + } safeOrderBy := sanitizeOrderBy(q.OrderBy) if safeOrderBy != "" { builder.WriteString(" ORDER BY ") @@ -322,10 +322,6 @@ func SqlQuery(tx *gorm.DB, sql string, list interface{}, q *PaginationQuery, par } func SqlQueryNew(tx *gorm.DB, sql string, list interface{}, q *PaginationQuery, params ...interface{}) (err error) { - // 验证输入参数的安全性 - if !isSafeSQL(sql) { - return errors.New("检测到潜在的SQL注入风险") - } var builder strings.Builder builder.WriteString(sql) @@ -407,6 +403,10 @@ func SqlQueryNew(tx *gorm.DB, sql string, list interface{}, q *PaginationQuery, // 安全地处理排序 - 使用白名单验证字段名 if q.OrderBy != "" { + // 验证输入参数的安全性 + if !isSafeSQL(sql) { + return errors.New("检测到潜在的SQL注入风险") + } safeOrderBy := sanitizeOrderBy(q.OrderBy) if safeOrderBy != "" { builder.WriteString(" ORDER BY ")