From cfdf186b938eb971032e40de457085eea726daa7 Mon Sep 17 00:00:00 2001 From: duorameng <2997944583@qq.com> Date: Thu, 30 Apr 2026 15:53:13 +0800 Subject: [PATCH] chore: add db log masking --- internal/services/config_service.go | 8 +++++++- internal/utils/crypto.go | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/internal/services/config_service.go b/internal/services/config_service.go index 8ffe990..5a440ab 100644 --- a/internal/services/config_service.go +++ b/internal/services/config_service.go @@ -6,6 +6,7 @@ import ( "github.com/engigu/baihu-panel/internal/constant" "github.com/engigu/baihu-panel/internal/logger" + "github.com/engigu/baihu-panel/internal/utils" "gopkg.in/ini.v1" ) @@ -150,12 +151,17 @@ func LoadConfig(path string) (*AppConfig, error) { if Config.Server.URLPrefix != "" { logger.Infof("[Config] URL前缀: %s", Config.Server.URLPrefix) } + + maskedHost := utils.MaskString(Config.Database.Host) + maskedDBName := utils.MaskString(Config.Database.DBName) logger.Infof("[Config] 数据库: type=%s, host=%s, port=%d, dbname=%s, dsn=%v", - Config.Database.Type, Config.Database.Host, Config.Database.Port, Config.Database.DBName, Config.Database.DSN != "") + Config.Database.Type, maskedHost, Config.Database.Port, maskedDBName, Config.Database.DSN != "") return Config, nil } + + // applyEnvOverrides 从环境变量加载配置 func applyEnvOverrides() { // Server diff --git a/internal/utils/crypto.go b/internal/utils/crypto.go index 4e1c083..6807ce2 100644 --- a/internal/utils/crypto.go +++ b/internal/utils/crypto.go @@ -112,3 +112,18 @@ func MaskSecrets(text string, secrets []string) string { } return text } + +// MaskString 对字符串进行脱敏处理,保留首尾,中间用星号遮掩 +func MaskString(s string) string { + if s == "" { + return "" + } + n := len(s) + if n <= 3 { + return "***" + } + if n <= 6 { + return s[:1] + "***" + s[n-1:] + } + return s[:2] + "****" + s[n-2:] +}