Browse Source

use Escape

pull/251/head
yedf2 4 years ago
parent
commit
37769befc4
  1. 2
      dtmcli/barrier.go
  2. 2
      dtmcli/dtmimp/trans_base.go
  3. 12
      dtmcli/dtmimp/utils.go
  4. 3
      dtmutil/db.go

2
dtmcli/barrier.go

@ -38,7 +38,7 @@ func (bb *BranchBarrier) newBarrierID() string {
// BarrierFromQuery construct transaction info from request // BarrierFromQuery construct transaction info from request
func BarrierFromQuery(qs url.Values) (*BranchBarrier, error) { func BarrierFromQuery(qs url.Values) (*BranchBarrier, error) {
return BarrierFrom(qs.Get("trans_type"), qs.Get("gid"), qs.Get("branch_id"), qs.Get("op")) return BarrierFrom(dtmimp.EscapeGet(qs, "trans_type"), dtmimp.EscapeGet(qs, "gid"), dtmimp.EscapeGet(qs, "branch_id"), dtmimp.EscapeGet(qs, "op"))
} }
// BarrierFrom construct transaction info from request // BarrierFrom construct transaction info from request

2
dtmcli/dtmimp/trans_base.go

@ -87,7 +87,7 @@ func (t *TransBase) WithGlobalTransRequestTimeout(timeout int64) {
// TransBaseFromQuery construct transaction info from request // TransBaseFromQuery construct transaction info from request
func TransBaseFromQuery(qs url.Values) *TransBase { func TransBaseFromQuery(qs url.Values) *TransBase {
return NewTransBase(qs.Get("gid"), qs.Get("trans_type"), qs.Get("dtm"), qs.Get("branch_id")) return NewTransBase(EscapeGet(qs, "gid"), EscapeGet(qs, "trans_type"), EscapeGet(qs, "dtm"), EscapeGet(qs, "branch_id"))
} }
// TransCallDtm TransBase call dtm // TransCallDtm TransBase call dtm

12
dtmcli/dtmimp/utils.go

@ -12,6 +12,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"net/http" "net/http"
"net/url"
"os" "os"
"runtime" "runtime"
"strconv" "strconv"
@ -235,3 +236,14 @@ func DeferDo(rerr *error, success func() error, fail func() error) {
} }
}() }()
} }
// Escape solve CodeQL reported problem
func Escape(input string) string {
replacer := strings.NewReplacer("'", "", "\n", "", "\r", "", " ", "")
return replacer.Replace(input)
}
// EscapeGet escape get
func EscapeGet(qs url.Values, key string) string {
return Escape(qs.Get(key))
}

3
dtmutil/db.go

@ -3,7 +3,6 @@ package dtmutil
import ( import (
"database/sql" "database/sql"
"fmt" "fmt"
"strings"
"sync" "sync"
"time" "time"
@ -101,7 +100,7 @@ func DbGet(conf dtmcli.DBConf, ops ...func(*gorm.DB)) *DB {
dsn := dtmimp.GetDsn(conf) dsn := dtmimp.GetDsn(conf)
db, ok := dbs.Load(dsn) db, ok := dbs.Load(dsn)
if !ok { if !ok {
logger.Debugf("connecting %s", strings.Replace(dsn, conf.Password, "****", 1)) logger.Infof("connecting '%s' '%s' '%s' '%d'", conf.Driver, conf.Host, conf.User, conf.Port)
db1, err := gorm.Open(getGormDialetor(conf.Driver, dsn), &gorm.Config{ db1, err := gorm.Open(getGormDialetor(conf.Driver, dsn), &gorm.Config{
SkipDefaultTransaction: true, SkipDefaultTransaction: true,
}) })

Loading…
Cancel
Save