Skip to content

2.5.2

Choose a tag to compare

@github-actions github-actions released this 22 Oct 12:08
· 56 commits to main since this release

dsh-remote-bridge v2.5.2

五维(安全 / 功能 / 性能 / 界面 / 按钮反馈)全量加固版,并修掉真机三轮隧道管理面回归。测试 67 个文件 / 557 个用例 + 8 个 Playwright 浏览器层用例全绿。

🔒 安全

  • 修复高危免鉴权信息泄露:GET /api/v1/debug/host-services 此前在鉴权之前返回,任何人(含隧道/局域网)无凭据即可读到内核服务注入面与内部错误文本;现移到鉴权之后并要求 settings.read。OpenAPI 的 security 豁免集与代码「鉴权前返回端点」建立自动双向 diff 门禁,防止再次漂移。
  • 限流从「所有来源共用回环桶」改为本机 / 隧道双桶,消除隧道下扫描者连本机面板一起 429 的自伤。
  • cloudflared 下载增加 SHA-256 完整性校验旁车(CLOUDFLARED_SHA256),并统一两处不一致的钉版本。
  • 非法 URI 编码(%ZZ)统一返回 400 而非 500;CORS 只对回环回显、不再回显 admin 请求头;错误响应脱敏(不回显绝对路径与完整镜像 URL)。
  • 四条敏感管理操作的审计补齐 requestId 且与业务同事务(审计失败则业务回滚);交接图 stat 前置限流 + 文件名哈希自证;列表游标严校;/manage 前缀改精确匹配。

🚀 功能与性能

  • 能力位按 jobs 服务可用性运行时过滤(缺 jobs 控制器时不再虚发三个标志位);OpenAPI 补齐 4 个已实现端点;审批 / 提问 10 分钟无响应自动结算(审批按 delegate,绝不默认批准)。
  • WebSocket 广播改 per-socket 队列:连接间并行、单连接内保序,慢连接不再连坐所有客户端;30s 心跳 + 连续两次无 pong 踢连接 + 4MiB 背压 close(1013) + 32 连接 / 1 MiB 消息上限;溢出优先丢弃增量帧并下发新事件 connection.resyncRequired。
  • 历史裁剪从「每条最多序列化三次」改为单遍 + 长度缓存;文件 ETag 从全量 SHA-256 改为 O(1) 弱 ETag 并真正返回 304;审计 / 幂等两表加保留策略(90 天 / 50 万行、幂等 24 小时);新增只读指标采集(RPC 耗时 P50/P95)。

🎛 界面与按钮反馈

  • 修复窄屏两个硬伤:CSS 里 @mediaa 拼写错误导致整条 720px 媒体规则失效(375px 下表单三列、保存按钮被挤成 37px);box-sizing 漏盖内联设置容器导致横向溢出。新增 375px 视口的 Playwright 契约测试锁死。
  • 普通按钮 / 输入框跟随宿主深浅色令牌(此前深色主题下白底黑字);禁用按钮统一半透明 + not-allowed;危险操作(删根、吊销设备、关远程、停隧道)统一二次确认。
  • 隧道进度文案改 i18n(此前服务端硬编码中文,英文界面也显示中文);新增成功反馈条;配对码加倒计时与复制、隧道地址一键复制;审计空态与分页;设备显示最后使用时间、uuid 缩写;图片灯箱点图片不再误关闭、加载失败有占位、多图可前后切换;面板顶栏挂上语言开关;清理死样式。

🚇 隧道「一键出令牌」(真机回归修复)

  • 「开启隧道并生成配置」此前要先开隧道再点一次生成,且隧道一开管理面即安全锁定,第二步必然 403 —— 现改为在同一次开启请求内等地址并搭车生成 DSH1: 令牌,一次点击直接拿到可复制配置。
  • 隧道运行中管理面安全锁定保持不变,但**「停止云隧道」始终可用**(stop 是唯一豁免的写操作,唯一效果是把管理面重新锁回,不构成提权;真实隧道来源的 cf-* 转发请求仍一律 403)。
  • 修复重进设置页时药丸误显「隧道已停止」、所有按钮灰掉的问题(刷新顺序导致豁免的隧道状态查询没执行):锁定期间除两个隧道出口外全部禁用并显示常驻说明,停止隧道后自动恢复。

校验

  • npm 包:dsh-remote-bridge-2.5.2.tgz,635,325 字节,SHA-256 18d3690462b4fff72299cb1a3c54623b929a3933597c47dc4486e9f0b9fc8095(带 v 与不带 v 两个文件名内容相同,见 Release 附件 SHA256SUMS.txt)。
  • 完整开发记录见仓库 docs/project/CHANGELOG-DEV.md 的 2.5.2 节。