在Golang中安全處理日志敏感信息,可采用以下方法:
138****1234
)。Stringer
或MarshalJSON
接口,對敏感字段統一處理。***
等占位符。WARN
或ERROR
級別,避免不必要的記錄。示例代碼(以zap為例):
import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"regexp"
)
func main() {
logger, _ := zap.NewProduction()
defer logger.Sync()
// 定義敏感信息正則
emailRegex := regexp.MustCompile(`[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}`)
passwordRegex := regexp.MustCompile(`\d{6}`)
// 自定義脫敏邏輯
maskedMessage := emailRegex.ReplaceAllString("用戶郵箱:user@example.com,密碼:123456", "***@***")
maskedMessage = passwordRegex.ReplaceAllString(maskedMessage, "******")
logger.Info(maskedMessage) // 輸出:用戶郵箱:***@***,密碼:******
}