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.c、web_adapter.c、web_audit.c、web_auth.c、scrhub_api.c、strhub.c、ephub.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