Files
codeql/go/ql/test/query-tests/Security/CWE-089/StringBreakMismatched.go
2022-05-20 10:07:19 -07:00

32 lines
912 B
Go

package main
import (
"encoding/json"
sq "github.com/Masterminds/squirrel"
"strings"
)
// Bad because quote characters are removed before concatenation,
// but then enclosed in a different enclosing quote:
func mismatch1(id string, version interface{}) {
versionJSON, _ := json.Marshal(version)
escaped := strings.Replace(string(versionJSON), "\"", "", -1)
sq.StatementBuilder.
Insert("resources").
Columns("resource_id", "version_md5").
Values(id, sq.Expr("'"+escaped+"'")).
Exec()
}
// Bad because quote characters are removed before concatenation,
// but then enclosed in a different enclosing quote:
func mismatch2(id string, version interface{}) {
versionJSON, _ := json.Marshal(version)
escaped := strings.Replace(string(versionJSON), "'", "", -1)
sq.StatementBuilder.
Insert("resources").
Columns("resource_id", "version_md5").
Values(id, sq.Expr("\""+escaped+"\"")).
Exec()
}