fix(supply-api): 修复P2-05数据库凭证日志泄露风险

1. 在DatabaseConfig中添加SafeDSN()方法,返回脱敏的连接信息
2. 在NewDB中使用SafeDSN()记录日志
3. 添加sanitizeErrorPassword()函数清理错误信息中的密码

修复的问题:P2-05 数据库凭证日志泄露风险
This commit is contained in:
Your Name
2026-04-03 10:06:14 +08:00
parent fd2322cd2b
commit aeeec34326
2 changed files with 31 additions and 5 deletions

View File

@@ -66,12 +66,19 @@ type AuditConfig struct {
ExportTimeout time.Duration
}
// DSN 返回数据库连接字符串
// DSN 返回数据库连接字符串(包含明文密码,仅限内部使用)
func (d *DatabaseConfig) DSN() string {
return fmt.Sprintf("postgres://%s:%s@%s:%d/%s?sslmode=disable",
d.User, d.Password, d.Host, d.Port, d.Database)
}
// SafeDSN 返回脱敏的数据库连接字符串(密码被替换为***),用于日志记录
// P2-05: 避免在日志中泄露数据库密码
func (d *DatabaseConfig) SafeDSN() string {
return fmt.Sprintf("postgres://%s:***@%s:%d/%s?sslmode=disable",
d.User, d.Host, d.Port, d.Database)
}
// Addr 返回Redis地址
func (r *RedisConfig) Addr() string {
return fmt.Sprintf("%s:%d", r.Host, r.Port)