数据库密码中包含特殊字符会出错
r90tpass opened this issue · comments
r90tpass commented
比如密码中有&%等会出错
是否能加一个编码转换的
类似于:password先用url进行编码,然后代码在连接时再进行解码。
decodedDB, err := url.QueryUnescape(password)
期待你的回复
koalr commented
这个是 url.Parse
解析时出错的,暂时没想到好的办法,只能先改下数据密码别有特殊字符了 ==
Ramoncjs commented
watchvuln/ctrl/config.go:51
// +add
conn, err := url.QueryUnescape(u.User.String())
if err != nil {
return "", "", fmt.Errorf("failed to unescape db_conn: %w", err)
}
return dialect.MySQL, fmt.Sprintf("%s@tcp(%s)/%s?%s", conn, u.Host, path, query), nil
koalr commented
@ramoncjs3 实际上,在这之前就已经报错了,报错在这一行 https://github.com/zema1/watchvuln/blob/main/ctrl/config.go#L28
这种情况可以试试手动把 password 用 url编码工具编码一下,再传到这个连接配置里