新闻
Tactic Remote v1.5 Beta:安全加固与多服务器架构
Tactic Remote v1.5 专注于让服务器更安全,并为你提供更多会话管理方式——包括同时连接多台服务器。
发布于 标签: 发布新闻 / security / announcement
新闻
继续查看该栏目下的产品与工程更新。
浏览此分类你好!以下是 v1.5 的新内容——感谢你帮助我们测试!
新功能
多服务器支持 — 现在你可以同时连接多台服务器,每台独立运行并拥有自己的状态。这对于在不同机器间工作或希望将项目分开的开发者来说非常实用。每个连接维护独立的会话状态,服务器之间不会互相干扰。
会话历史自动保存 — 不再丢失终端输出!当你断开连接、切换会话或将应用放入后台时,会话会自动保存。正常使用期间还有 30 秒防抖自动保存,配合智能去重不会过度写入磁盘。历史界面支持下拉刷新,用绿色"活跃"徽标显示当前活跃会话,相对时间戳自动保持最新。
语音听写(Whisper) — 设备端语音识别来了!选择一个 Whisper 模型后会立即预加载,开始录音时没有延迟。录音界面使用应用主题橙色,保持整洁一致的外观。
安全改进
本版本在所有平台上显著加固了服务器:
- 路径遍历防护:新的
isPathWithinBase()检查替代了之前的startsWith方式。这正确处理了符号链接和路径规范化的边缘情况,这些情况之前可能被利用来逃离允许的目录。 - 敏感目录拦截名单扩展:除了已有的
.ssh、.gnupg和系统密钥链保护外,所有平台现在还会拦截 1Password 密钥库和 Linux 密钥环目录。 - 命令执行安全:
execSafe现在默认强制 30 秒超时和每个输出流 2 MB 缓冲区限制。失控进程不再能消耗无限内存或无限期挂起。 - 速率限制和认证中间件:在 Mac、Linux 和 Windows 服务器上添加了服务端请求限流和认证中间件。
性能优化
- ANSI 解析器结果被缓存,未变化的终端内容不会在每次渲染时重新解析。
- 终端缓冲区更新通过惰性行数计算进行去重,减少高输出会话期间不必要的重新渲染。
- WebSocket 广播现在感知背压——仅向活跃订阅者发送,并尊重每连接缓冲区限制。
iOS 优化
- 设置视图更简洁——移除了冗余的"连接"标签页,因为连接管理现在位于服务器列表中。
- 修复了多个引用循环(Task 闭包中的
[weak self]),避免长时间会话中的内存泄漏。 - 录音状态指示器匹配应用主题橙色。
测试与 CI
我们为所有三个服务器平台(Mac、Linux、Windows)添加了覆盖路径安全验证和 WebSocket 处理器行为的 Jest 测试套件,以及每次推送时自动运行的 GitHub Actions CI 工作流。
要更新,请从我们的下载页面下载最新 DMG。如果遇到任何问题请报告。祝测试愉快!