Skip to content

安全与运维手册

本手册汇总 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.logdownload.logupload.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 条款形成商用授权结论。

基于 Rust + Python + Next.js 构建