feat: add secret feature

This commit is contained in:
engigu
2026-03-27 14:51:29 +08:00
parent 06589e87c4
commit cc3316c4b8
19 changed files with 447 additions and 76 deletions
+6
View File
@@ -4,6 +4,12 @@
## 最近更新概览
### 2026.03.27 - 安全机密管理 (GitHub Secrets 风格)
- **安全机密功能 (New)**:引入类似 GitHub Actions 的机密管理机制。支持使用 **AES-GCM** 加密存储敏感变量,数据库不存明文,保障配置安全。
- **秘钥内存常驻销毁 (Safe-Unset)**:系统启动从环境变量读取秘钥后会立即执行 `Unset` 操作,确保秘钥仅保留在内存中,不暴露在进程环境内。
- **日志自动脱敏**:实时流水日志自动扫描并掩码(Mask)脱敏显示机密内容(`********`),防止执行时通过任务输出泄露机密。
- **严格隔离机制**:机密**仅在定时调度任务**时生效,终端命令执行、手动测试、调试等入口物理隔离机密。
### 2026.03.19 - 仓库同步功能增强
- **青龙指令深度兼容**:支持直接粘贴青龙格式的仓库同步指令,自动解析并创建任务。
+22
View File
@@ -22,6 +22,7 @@
| `BH_DB_PATH` | database.path | SQLite 物理文件存储路径 | ./data/baihu.db |
| `BH_DB_DSN` | database.dsn | 数据库 DSN (仅 mysql/postgres, 优先级高。**需对应设置 type**) | - |
| `BH_DB_TABLE_PREFIX` | database.table_prefix | 数据库表前缀 | baihu_ |
| `BAIHU_SECRET_KEY` | - | 系统加密秘钥,用于机密变量功能(**注:仅支持环境变量设置,不支持配置文件**) | - |
---
@@ -62,3 +63,24 @@ table_prefix = baihu_
- **Worker 数量** (默认 4):同时在后端并发运行的任务进程数。
- **队列大小** (默认 100):待处理任务队列的最大容量。
- **速率间隔** (默认 200 ms):控制两个任务启动之间的最小等待时长。
---
## 机密管理 (Secret Management)
白虎面板提供了一套基于 **AES-GCM** 工业级标准的安全机密管理系统,其设计理念参考了 GitHub Actions Secrets。
### 核心特性
1. **强加密存储**:所有标记为“机密”的变量在数据库中均以加密密文形式存储。
2. **秘钥安全**:通过环境变量 `BAIHU_SECRET_KEY` 注入加密秘钥。系统读取秘钥后会立即将其从进程环境变量中销毁(Unset),确保秘钥仅驻留在内存中。
3. **日志自动脱敏**:系统会自动扫描任务执行生成的实时日志流。一旦发现机密明文,将自动替换为 `********`,防止敏感信息通过日志泄露。
4. **严格权限隔离**
- 机密内容**仅在计划任务由调度器定时执行时**才会注入到环境。
- 通过**终端命令**、**测试运行**或**调试运行**调起的临时进程无法获取机密内容,保障核心资产安全。
### 配置建议
- 建议在 Docker/Compose 启动项中设置 `BAIHU_SECRET_KEY` 为一个复杂的随机字符串。
- 不要将该秘钥写入 `config.ini` 或提交到版本控制系统。