安全与运维手册
本手册汇总 biliup 在安全、账号、网络、备份与运维方面的已知事实与边界。内容基于 biliup v1.2.6 源码走查编写,凡是「待维护者确认」的项,请以官方 Release 与代码所有者结论为准。
角色定位
biliup 是社区开源项目,无 SLA、无正式技术支持承诺。以下结论用于帮助你判断能否用于自己的环境,不构成安全审计或合规认证。
1. 身份与账号模型
biliup 涉及三类身份,请勿混淆:
| 身份 | 用途 | 现状 |
|---|---|---|
| WebUI 管理员 | 登录管理界面 | 当前为单管理员模型,用户名固定 biliup,由你设置密码 |
| B站投稿账号 | 上传与投稿 | 通过扫码 / Cookie 添加,可多个 |
| API 调用者 | 调用 REST / WebSocket | 通过 WebUI 会话(当前无独立 API Token 机制) |
⚠️ WebUI 管理员用户名不可修改、固定为
biliup。忘记密码需操作数据库重置(会丢失全部配置,操作前务必备份)。
2. 认证与访问控制
| 项目 | 状态 | 说明 |
|---|---|---|
--auth 基础认证 | ✅ 支持 | 布尔开关,开启后首次访问设置 biliup 密码 |
| 会话机制 | ✅ 支持 | 基于 Session / Cookie |
| 多管理员 / 普通用户 | ❌ 不支持(据现状) | 当前为单管理员模型,不适合多租户 / 多团队共享 |
| RBAC / SSO / MFA | ❌ 不支持(据现状) | 企业多用户场景需另行评估 |
| API Token / 服务账号 | ❌ 不支持(据现状) | 集成调用依赖 WebUI 会话 |
| 审计日志 | ❓ 待确认 | 文档未见管理员操作 / 配置变更审计记录 |
3. 日志 WebSocket 的认证边界(重要)
实时日志通过 /v1/ws/logs 推送,可订阅频道为 ds_update.log、download.log、upload.log。
/v1/ws/logs 与普通 REST 路由共用同一套登录守卫:开启 --auth 后,未携带有效会话的连接会被拒绝(服务端源码中有对应的行为测试);未开启 --auth 时则完全开放。
⚠️ 日志内容包含文件名、路径等敏感信息。即便端点受保护,公网暴露前仍建议在反向代理层终结 TLS 并做访问控制。
4. 网络暴露与 TLS
| 建议 | 说明 |
|---|---|
不要直接暴露 19159 到公网 | 至少加 --auth + 反向代理终结 TLS |
| 反向代理绑定域名 + HTTPS | 见生产部署基线第 3 节 |
| 仅本机监听 | Compose 中 ports: "127.0.0.1:19159:19159",由反代转发 |
| 默认监听地址 | 127.0.0.1(仅本机)。需外部访问必须显式 --bind 0.0.0.0 --auth,否则服务拒绝启动 |
非本机绑定必须开认证
绑定 0.0.0.0 等本机以外的地址时,若未开启 --auth,服务会直接拒绝启动并提示 refusing to expose the unauthenticated Web API。这不是可以绕过的设计,请按 --bind 0.0.0.0 --auth 的方式启动。
5. 凭据与日志脱敏
- 专用低权限测试账号:首次验证请使用专用、低权限的 B站测试账号,不要使用生产主账号。
- Cookie / Token 存储:平台凭据由 biliup 保存于数据目录,请做好数据卷备份与访问权限控制。
- 轮换:B站 Cookie 通常 1-3 个月过期,过期后在 WebUI 重新扫码续期。
- 日志脱敏:向 GitHub Issue 提交日志前,删除 Cookie、Token、直播地址与个人路径。
6. 备份与恢复
| 数据 | 是否必须备份 | 恢复验证 |
|---|---|---|
SQLite 数据库 /opt/data/data.sqlite3 | 是 | 重启后账号、主播、模板、历史可读取 |
Cookie / Token /opt/cookies | 是 | 登录状态可验证 |
| 录像与临时文件 | 按业务策略 | 文件数量、大小、可播放性 |
- 一致性:建议在停服后拷贝整卷(见生产部署基线备份脚本),避免 SQLite 与录像文件不一致。
- RPO / RTO:项目未对恢复点 / 恢复时间目标作出承诺,请按自身业务设定备份频率与保留期。
- 恢复演练:建议定期做一次恢复演练,确认备份可用。
7. 监控与运维
| 项目 | 状态 | 说明 |
|---|---|---|
| 内置 metrics / 健康端点 | ❓ 待确认 | 未见结构化 metrics;可依赖容器健康检查与 WebUI 日志 |
| 结构化日志 / 轮转 | ⚠️ 部分 | Docker 进阶页有日志轮转建议;级别可在全局配置调整 |
| 告警阈值 | ❓ 待确认 | 磁盘将满、Cookie 失效、上传失败等建议结合外部监控 |
| 升级 / 回滚 | ✅ 可操作 | 见生产部署基线第 5 节 |
8. 支持与责任边界
- 社区项目,不提供 SLA、响应或修复时间承诺。
- 问题反馈、功能讨论、安全漏洞应分别使用对应 GitHub 渠道。
- 遇数据损坏、安全事件或平台封禁,维护者承担的责任以项目许可证与官方声明为准。
许可提示:仓库
LICENSE为 MIT,但上游 README 的免责声明中另写有「禁止商业用途 / Commercial use is strictly prohibited」。两者存在冲突且尚未由维护者澄清,企业采用前请以维护者的官方说明为准,不要仅凭 MIT 条款形成商用授权结论。