| | |
| | | |
| | | import ( |
| | | "encoding/json" |
| | | "strings" |
| | | |
| | | "kingdee-dbapi/config" |
| | | "kingdee-dbapi/logger" |
| | |
| | | var sql = string(data) |
| | | |
| | | logger.Debug("接收到查询请求,%s", sql) |
| | | |
| | | if !sqlCheck(sql) { |
| | | logger.Warn("识别到危险的sql语句, 拒绝执行. %s", sql) |
| | | |
| | | return nil |
| | | } |
| | | |
| | | if db == nil { |
| | | logger.Debug("数据库未连接") |
| | |
| | | |
| | | return nil |
| | | } |
| | | |
| | | // 简单过滤下sql语句,拒绝增删改操作 |
| | | func sqlCheck(sql string) bool { |
| | | var dangerousWords = []string{"INSERT", "UPDATE", "DELETE", "ALTER", "DROP", "DECLARE", "EXECUTE", "EXEC", "INTO", "TRANCATE"} |
| | | |
| | | var upperStr = strings.ToUpper(sql) |
| | | |
| | | for _, word := range dangerousWords { |
| | | if strings.Contains(upperStr, word) { |
| | | return false |
| | | } |
| | | } |
| | | |
| | | return true |
| | | } |