gigibox
2023-06-20 e5dfbb23ac6fd3fc857fa93c5f6c4cb934db1458
kingdee/query.go
@@ -2,6 +2,7 @@
import (
   "encoding/json"
   "strings"
   "kingdee-dbapi/config"
   "kingdee-dbapi/logger"
@@ -14,6 +15,12 @@
   var sql = string(data)
   logger.Debug("接收到查询请求,%s", sql)
   if !sqlCheck(sql) {
      logger.Warn("识别到危险的sql语句, 拒绝执行. %s", sql)
      return nil
   }
   if db == nil {
      logger.Debug("数据库未连接")
@@ -66,3 +73,18 @@
   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
}