|
|
@@ -405,6 +405,20 @@ func isCURDOperation(q string) bool {
|
|
|
// 先查固定允许的操作
|
|
|
if _, ok := builtinOps[prefix]; ok {
|
|
|
return true
|
|
|
+ } else {
|
|
|
+ // 尝试清理所有非字母字符(移除控制字符、BOM、数字、标点等):
|
|
|
+ //`SELECT` 长度 6,字节:[83 69 76 69 67 84]
|
|
|
+ //prefix中的值长度 8,字节:[0 1 83 69 76 69 67 84]
|
|
|
+ prefixTmp := strings.Map(func(r rune) rune {
|
|
|
+ // 只保留大写字母 A-Z
|
|
|
+ if r >= 'A' && r <= 'Z' {
|
|
|
+ return r
|
|
|
+ }
|
|
|
+ return -1 // 删除其他所有字符
|
|
|
+ }, prefix)
|
|
|
+ if _, ok := builtinOps[prefixTmp]; ok {
|
|
|
+ return true
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 加载环境变量控制的操作(只执行一次)
|