跳到主要内容

RTKHUB v1.3.0 发布说明

RTKHUB v1.3.0 是继 v1.2.0 之后的重大安全与功能发布版本。本版本聚焦于全面的安全加固、EPHUB 功能增强、JSON 库迁移以及生产就绪性改进。

🎯 亮点

  • 安全加固:修复关键的路径遍历、缓冲区溢出、会话固定和竞态条件漏洞
  • EPHUB 增强:新增热更新流、CLI 管理、完好性告警、质量度量和 SSR 参考流
  • JSON 迁移:从手写 JSON 全面迁移到高性能 yyjson 库
  • 生产就绪:全面的登录限流、日志脱敏、输入校验和 XSS 防护

🔒 安全修复

Priority 0(关键)

P0-1: 路径遍历漏洞

修复提交: c86ccc3 (2026-07-03)

  • 修复 Web API 端点的路径遍历攻击
  • 添加全局 URI 安全检查,阻断编码路径分隔符(%2F%5c
  • 在路径匹配前加强原始 URI 校验
P0-2: 全局配置竞态条件

修复提交: dc10a92 (2026-07-03)

  • 修复全局配置访问的竞态条件
  • 为共享配置状态添加适当的互斥锁保护

Priority 1(高危)

P1: Web 缓冲区溢出与会话固定

修复提交: f93a52f (2026-07-03)

  • 修复 Web 终端和状态处理器的缓冲区溢出漏洞
  • 将不安全的 vsprintf/sprintf 替换为有界变体(vsnprintf/snprintf
  • 通过登录时重新生成会话 ID 修复会话固定漏洞
  • 添加会话劫持防护

Priority 2(中危)

P2: 登录限流、日志脱敏与输入校验

修复提交: 554139a (2026-07-03)

  • 实现登录限流(每个 IP 每 60 秒 5 次尝试)
  • 添加日志脱敏,防止 NTRIP 日志泄露凭据
  • 增强 Web API 参数输入校验
  • 添加 SCRHUB 脚本路径校验,防止目录遍历
额外的安全加固

修复提交: 58a6579 (2026-06-28)

  • XSS 防护:转义 HTML 渲染中所有用户控制的数据
  • 凭据泄露防护:在日志和 API 响应中脱敏 NTRIP 凭据
  • 添加恒定时间密码比较,防止时序攻击
  • 通过 yyjson 内置转义防止 JSON 注入

✨ 新功能

EPHUB 管理增强

热更新流 (eb38d0e, 32df7c0, 2026-06-20)

  • 无需重启 EPHUB 即可添加/删除输入流
  • 动态添加/删除输出流
  • 改进的模态 UI 流设置对话框

配置持久化 (86580ce, 2026-06-20)

  • 保存当前 EPHUB 配置到文件
  • CLI 命令:save [file]
  • Web API:/api/config/save

完好性告警 (6e5b0f8, fe6d3cd, 2026-06-20)

  • 实时星历完好性监测
  • 主动告警系统,监测过期/缺失星历
  • Web 仪表板中的可视化指示器

CLI 管理命令 (e778b4f, 2026-06-20)

  • add input <path> - 添加输入流
  • add output <path> - 添加输出流
  • remove input <id> - 删除输入流
  • remove output <id> - 删除输出流
  • save [file] - 保存配置

质量度量 (e3288da, 08a580b, 2026-06-20/21)

  • 多播发源间星历质量比对
  • 星历选择的候选源缓存
  • 源质量诊断与排名

SSR 参考流 (226b657, 2026-06-21)

  • 支持 SSR(状态空间表示)参考流
  • 增强 RTCM 3 消息处理,支持 SSR 改正

流错误路由 (fc71259, ad89572, 2026-06-20)

  • 将流错误路由到 trace 日志,而非控制台刷屏
  • 流重连期间保留源过滤器

JSON 库迁移

yyjson 集成 (408e6b9, 24d19fc, 2026-06-19)

  • 将手写的 json_util.h 替换为高性能 yyjson 库
  • 迁移 rtk_web.cweb_adapter.cweb_audit.cweb_auth.cscrhub_api.cstrhub.cephub.c 中的所有 JSON 序列化
  • 内置 JSON 转义,消除手动字符串清理需求
  • 改进 JSON 构建性能和可维护性

UI/UX 改进

Hub 管理 UI 优化 (6edf400, 2026-06-19)

  • 改进 EPHUB、STRHUB、SCRHUB 管理页面布局
  • 所有 Hub 页面的移动端响应式优化
  • 通过 ui.css 统一卡片、按钮、徽标样式

管理员操作图标 (81af810, 2026-06-19)

  • 改进用户管理操作按钮图标
  • 管理员操作的视觉清晰度提升

流管理对话框 (94a4421, 707a644, 2026-06-20)

  • EPHUB 输入/输出创建的模态对话框
  • 改进表单验证和错误处理

🔧 改进

后端

  • NTRIP 挂载点列表:增加缓冲区大小,支持更大的挂载点响应 (a13b8bb)
  • 自动刷新恢复:修复安全性更改后的 EPHUB 轮询 (560ce7e, 0f2cb14)
  • 定时重播计数:准确的重播统计 (55fb786)

文档

  • 全面测试指南:添加 P0 安全修复测试文档 (7d3edbb)
  • EPHUB API 文档:更新 API 端点文档 (cc1d06f)
  • README 更新:反映 yyjson 迁移和更新日志 (e6ac0d5)
  • 系统文档:全面的 RTKHUB 系统文档 (8ba27fb)

构建系统

  • 线程配置文件:添加 thread_config.c/h 到 Visual Studio 项目 (58dfad2)
  • yyjson 集成:添加 yyjson 到所有相关的 .vcxproj.vcxproj.filters 文件

⚠️ 重大变更

  • JSON API:内部 JSON 生成替换为 yyjson(API 契约不变,仅实现变更)
  • EPHUB CLI:新命令可用;现有命令不变

📋 升级说明

升级提示
  • 无需修改配置文件
  • 现有数据库完全兼容
  • 安全修复向后兼容
  • EPHUB 流在升级后将自动重连

✅ 验证

安全性测试

所有安全修复均已通过以下验证:

# P0-1: 路径遍历测试
tools\verify_ephub_fixes.ps1

# P1: 缓冲区溢出测试
# 使用超大输入手动验证

# P2: 登录限流测试
# 自动化登录尝试测试

功能测试

# EPHUB 热更新
ephub.exe -k conf\ephub_conf\ephub.conf
# 测试:添加输入、删除输入、保存配置

# JSON 序列化
# 所有 Web API 测试 JSON 输出正确性

🌐 默认 Web 地址

RTKHUB: http://127.0.0.1:5426/
STRHUB: http://127.0.0.1:5427/
EPHUB: http://127.0.0.1:5428/

🚀 建议启动命令

# RTKHUB
rtkhub.exe -s -k conf\rtkhub.list

# STRHUB
strhub\x64\Debug\strhub.exe -k conf\strhub_conf\strhub.conf

# EPHUB
ephub\x64\Debug\ephub.exe -k conf\ephub_conf\ephub.conf -x 3

👥 贡献者

  • 王健(长安大学)

📅 发布日期

2026-07-03