安全
Rust-Srec 会处理访问令牌、平台 Cookie、通知凭据、录制文件和弹幕数据。主机和每份备份都应按敏感基础设施管理。
认证边界
- 立即修改
admin/admin123!。应用会强制初始账号改密,但默认凭据仍不得暴露到网络。 - 为
JWT_SECRET和SESSION_SECRET生成至少 32 字符且互不相同的随机值。轮换JWT_SECRET会使访问令牌失效,应按 API 客户端中断来安排。 - 访问令牌有效期较短;刷新令牌是会轮换的会话凭据,保护级别应等同密码。
AUTH_DISABLED=true仅用于本机开发。后端只会在绑定回环地址时接受它,生产流程不得依赖该选项。该模式下,只有Origin位于API_CORS_ORIGINS允许列表内(或与请求自身的Host相同)的请求才会被受理;同时Host必须是回环名称或所配置的绑定地址——后者用于阻断 DNS 重绑定页面访问未认证的 API。仅在你能控制的来源上放宽该列表。- 连续登录失败会按账号限流(默认每 15 分钟 5 次),并另有一个宽松得多的按来源地址配额;被限流的请求直接返回
429和Retry-After等待时间,不再执行一次密码哈希。来源地址取自 TCP 对端且不信任X-Forwarded-For,因此在自带前端或任何反向代理之后,所有登录都会归到代理身上——不要依赖按地址的配额来隔离不同客户端。详见配置。 - 令牌中带有角色名,导出内容也包含用户账号,但路由层并未据此强制执行权限策略,也没有对接外部身份提供商。详见能力边界。
网络与会话安全
在前端之前终止 TLS,仅在反向代理不发送 X-Forwarded-Proto: https 时设置 COOKIE_SECURE=true,并用防火墙限制两个宿主机端口。没有直接 API 消费者时保持后端私有;不要向匿名互联网客户端公开 Swagger、媒体代理或日志接口。
流代理默认阻止私网目标。开启 stream_proxy_allow_private_targets 后,已认证用户可让服务请求内部地址;仅在明确的局域网摄像头或转流场景开启。
密钥与文件
- 限制
.env、DATA_DIR、CONFIG_DIR、LOG_DIR、配置导出和备份媒体的访问。 - 平台 Cookie 和密码可能出现在配置导出中;通知渠道可能包含 SMTP 密码、机器人令牌、Webhook 密钥和自定义请求头。
- 百度网盘登录会话保存在 BaiduPCS-Go 的配置目录中(
BAIDUPCS_GO_CONFIG_DIR,Docker 中为/app/config/BaiduPCS-Go),请像保护 Cookie 一样保护并备份该目录。勾选“记住凭据以便自动重新登录”后,登录凭据还会以明文保存在应用数据库(tool_credentials表)中,与平台 Cookie 相同;退出登录时会删除。登录(包括自动重新登录)期间,凭据会短暂出现在 BaiduPCS-Go 进程的命令行参数中,本机其他进程可能观察到;应将主机 Shell 访问权限视同网盘账号访问权限。 - 分享日志或截图前,隐藏令牌、私有 URL、用户名、Cookie 和文件系统路径。
- 容器不要挂载不必要的宿主机目录或设备;只有所选管道需要时才添加 GPU 设备。
- 把
execute、上传、移动或删除源文件等管道步骤视为具有文件系统和网络权限的代码来审查。
漏洞处理
不要在公开 Issue 报告疑似漏洞。请使用 GitHub 私密漏洞报告,说明受影响版本、影响和已移除密钥的最小复现。安全修复进入 main 并随后续版本发布。