fix(security): 分离 JWT 与数据加密密钥并新增启动安全体检
.env 中 JWT_SECRET 仍逐字节等于 .env.example 的示例值,且 DATA_ENCRYPTION_KEY 未设置、按 config.go 的回退逻辑实际等于 JWT_SECRET。任何见过仓库的人都能伪造 管理员 JWT,并解密库中全部 API Client / 回调密钥密文。 - JWT_SECRET 与 DATA_ENCRYPTION_KEY 改为各自独立的强随机值 - 新增 Config.SecurityWarnings():示例密钥 / 未分离 / release 下开调试日志均告警 - 新增 cmd/reencrypt_secrets:默认只预演,-apply 才写库;幂等,坏数据不中断整轮 - 新增 docs/密钥轮换说明.md;.gitignore 忽略 .env.bak* - release 模式下关闭 OPEN_API_DEBUG
This commit is contained in:
@@ -50,6 +50,11 @@ func main() {
|
||||
|
||||
gin.SetMode(cfg.Mode)
|
||||
|
||||
// 密钥配置体检:让「示例密钥被带到真实部署」这类问题在启动日志里立刻可见。
|
||||
for _, warning := range cfg.SecurityWarnings() {
|
||||
applog.Warnf("[CONFIG] 安全告警: %s", warning)
|
||||
}
|
||||
|
||||
db, err := gorm.Open(postgres.Open(cfg.DatabaseURL), &gorm.Config{
|
||||
Logger: applog.NewGormLogger(cfg.Mode),
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user