Skip to content

BBDown v1.6.15

Choose a tag to compare

@github-actions github-actions released this 18 Aug 21:20
· 43 commits to master since this release

修复与安全性加固

  • serve 模式令牌优先级修复:修复 --serve-tokenBBDOWN_SERVE_TOKEN 优先级反转缺陷,确保环境变量优先于 CLI 参数,并在两者同时设置且值冲突时记录警告日志。
  • B 站官方域名白名单统一:抽取 HTTPUtil.OfficialHostSuffixesIsOfficialBilibiliHost 为唯一定义源,消除 HTTPUtil.CookieTrustedHostsUrlResolver.TrustedBilibiliHostsBBDownApiServer.OfficialHostSuffixes 之间潜在的白名单漂移风险。
  • serve 并发限流与测试隔离/get-tasks 族查询端点引入并发信号量限流(上限 8),防止高并发深拷贝任务快照耗尽 CPU/GC;将 BBDownApiServer._persistFailures 改为实例字段,杜绝并发测试实例间的状态串扰;新增 --trusted-proxy 选项以支持反代 XFF 客户端 IP 计键限速。
  • 凭据外发与传输层纵深防御:带 Cookie 的请求在发送前强制校验目标是否为官方或显式配置的信任域名,拦截非可信凭据外发;--insecure 不安全连接的 Date 响应头不再参与全局时钟校准(防跨流 WBI 扰动);gRPC POST 拦截 3xx 重定向防凭据随跳转外发;媒体下载切换至禁用自动跳转的 MediaDownloadClient;gzip 解压设定 48MB 安全上限防解压炸弹;gRPC 帧首字节合法性校验;异常消息回显前剥离控制字符。
  • 解析与格式化修复:强制数字解析使用 CultureInfo.InvariantCulture 避免特定区域设置下解析异常;完善 gRPC 必填参数校验;拦截负数分 P 参数;修复国际站(biliintl/bilibili.tv)域名匹配与解析容错;修复弹幕 ASS 格式化及分 P 别名缺陷。
  • 分片清理一致性:统一轨道分片类型判定全部走 IsVideoClipPath(不区分大小写),修复 DownloadClipsAsync 返回分片路径处仍使用大小写敏感 EndsWith(".mp4") 判断的漏网,消除极端文件名下视频/音频分片 .vclip/.aclip 分类与清理规则错位的可能。

测试增强

  • 全库测试扩充至 600+ 例:新增 serve token 环境变量优先级测试、B 站官方域名白名单覆盖测试、进程树哨兵验证、3-clips 分片哈希比对、查询并发信号量端点测试等。

Commits

  • ci: create-release 只下载 BBDown_* 发布产物——排除 docker buildx 缓存 artifact,防偶发下载失败拖挂发布
  • docs: 发布 v1.6.15——落定 CHANGELOG 版本号并补记分片清理一致性修复
  • docs: 新增 REVIEW_FINDINGS.md——审查发现与建议跟踪(RF-1~RF-4,含已采纳/技术债/维持现状/待议)
  • fix: 统一分片扩展名判定走 IsVideoClipPath——修复第 6 处大小写不一致漏网(844 行仍用区分大小写 EndsWith)
  • fix: 修复 serve token 环境变量优先级、统一 B 站官方域名白名单源并补齐 CHANGELOG
  • fix: 修复数字解析文化不变性、gRPC参数必填校验、分P负数拦截与投稿列表分页诊断
  • fix: 修复国际站白名单、gRPC与JSON解析容错、弹幕ASS格式化及分P别名缺陷
  • refactor: 补 H 组/I 组低风险项收尾——Pages.cs 悬空 XML 注释删除 + REVIEW_PLAN 状态更新
  • refactor: 低风险可读性清理(H7/H12/H13 + I17-I20)——死代码、拼写、record 化、魔法数具名、注释归位
  • fix: B3 补充安全加固 8 项——Cookie 白名单纵深防御、时钟偏移不可信源隔离、凭据请求禁跟随重定向、gzip 解压上限与帧校验、异常消息净控
  • fix: D8 HTTP 查询并发上限——/get-tasks 族加查询信号量防无限深拷贝放大 CPU/GC
  • fix: B3 独立安全审查——签名媒体 URL 日志脱敏穿透下载链路、畸形帧空判、WBI key 掩码
  • test: 功能/韧性测试补齐(第 2 轮,5 项)——进程树哨兵验证、确定性断言、3-clips 字节级、直播与幂等分支
  • test: 测试套件结构加固(第 1 轮,8 项)——failSkips 防静默跳过、墙钟改区间重叠、动态端口、捕获前值恢复、契约断言补全
  • docs: 新增 REVIEW_PLAN.md——剩余 47 项审查修复全量排期(7 轮)
  • test: 契约测试补齐——CSRF/认证限速/cancel 端点测试、413 契约对齐、看门狗 per-call 注入、程序集级串行
  • fix: 应用层——LATEST 别名全词匹配修复(C1)、字幕降级补 TimeoutException(E1)、Download.cs 缩进对齐
  • fix: 下载/直播/订阅韧性——VOD 读停滞看门狗、分片扩展名大小写统一、直播短段退避、进程管道成功路径超时、订阅历史有界、itags CRLF 转义
  • fix: serve 安全加固——ForceHttp 清零、trusted-proxy XFF 限速计键、数值 Clamp 防慢速 DoS、RetryCount 统一 [1,3]、日志单行化、IPv6 字面量 DnsSafeHost、token 环境变量支持
  • fix: Core 韧性加固——字幕降级补 TimeoutException、Widevine 许可证有界重试与超时分类、重定向 GET 兜底重试、fetcher 业务 code 诊断、Logger.LogStack 完整堆栈落盘
  • fix: codeql 抑制注释改为纯标记独占一行(GitHub 要求不能含其他文本)
  • fix: codeql 抑制注释移至告警行上方(CipherMode.ECB),确保 suppression 生效
  • docs: CodeQL ECB 告警抑制——CMAC/零 IV 单块操作属协议要求,非多块模式泄露
  • fix: CodeQL 补 security-events: write 权限——SARIF 上传到 Code scanning 页失败
  • fix: 回滚 setup-dotnet cache: true——项目未启用 packages.lock.json,CI 报错
  • chore: 仓库优化四连——Dependabot/CodeQL/GHCR镜像/SHA256/徽章/缓存/分支保护
  • ci: 构建产物保留期收紧为 7 天(build_latest/release/pr 共 13 处 upload-artifact)
  • fix: release workflow 幂等化——release 已存在时跳过创建、直接上传构建产物

Downloads

Platform Architecture
Windows x64, arm64
Linux x64, arm64
macOS x64, arm64

Full Changelog: v1.6.14...v1.6.15