跳到主要内容

更新日志

v1.3.0 安全加固与 EPHUB 增强(2026-07-03)

这是一个重大安全与功能发布版本,包含关键漏洞修复、EPHUB 管理增强和 JSON 库迁移。

安全修复

  • 🔒 P0 路径遍历漏洞:修复 Web API 端点路径遍历攻击,添加全局 URI 安全检查阻断编码路径分隔符
  • 🔒 P0 全局配置竞态条件:为共享配置状态添加互斥锁保护
  • 🛡️ P1 缓冲区溢出与会话固定:替换不安全的 sprintf/vsprintf,登录时重新生成会话 ID 防止会话劫持
  • 🛡️ P2 登录限流与日志脱敏:实现登录限流(5 次/60 秒/IP),脱敏 NTRIP 日志中的凭据,增强输入校验
  • 🔐 XSS 防护、恒定时间密码比较、JSON 注入防护

EPHUB 功能增强

  • 热更新流:无需重启即可添加/删除输入输出流,改进模态 UI 对话框
  • 💾 配置持久化:CLI save [file] 命令与 /api/config/save API 保存当前配置
  • 🚨 完好性告警:实时星历完好性监测,主动告警过期/缺失星历
  • 📊 质量度量:多源星历质量比对、候选源缓存、源质量诊断排名
  • 🛰️ SSR 参考流:支持 SSR(状态空间表示)参考流与 RTCM 3 SSR 改正
  • 🔧 CLI 管理命令add input/outputremove input/outputsave 等命令

JSON 库迁移

  • 📦 从手写 json_util.h 全面迁移到高性能 yyjson 库
  • 🚀 内置 JSON 转义,改进性能和可维护性

升级说明:无需配置修改,数据库完全兼容,安全修复向后兼容

📖 完整发布说明

2026-06-21

  • EPHUB 外部参考 SISRE
  • -ref-sp3/-ref-clk 从配置占位升级为实际加载,复用 RTKLIB readsp3/readrnxc/peph2pos 读取精密轨道和钟差
  • /api/reference 增加 SP3/CLK 文件存在性、加载状态、精密轨道/钟差卫星数、时间范围和最后错误
  • /api/sources/api/sat 增加 sisre_m、外部参考轨道差、R/A/C 分解和钟差等效距离字段
  • sisre_like_m 明确表示多源广播星历互比,sisre_m 表示相对外部 SP3/CLK 参考的严格 SISRE
  • 新增 reference_missing/reference_expired/sisre_warning/sisre_alarm/clock_reference_gap 等外部参考相关告警,并保持状态去重
  • EPH 管理页星历源表增加"外部SISRE",候选详情分开展示多源偏差与外部参考偏差

2026-06-20

  • EPHUB API 与 trace 文档更新
  • 新增 EPHUB 输入/输出流结构化新增弹窗,支持 NTRIP、TCP、UDP、File、Serial、NTRIP Server/Caster 等类型自动生成 stream path
  • 新增 STRHUB 结构化新增任务弹窗,支持按输入/输出流类型生成 -in ... -out ... 参数
  • 新增 /api/ntrip/mountpoints,可从 NTRIP caster sourcetable 获取挂载点列表
  • STRHUB/EPHUB Web 页面展示 stream path 时对用户名、密码和 ntripsvr 密码做脱敏处理
  • EPHUB 运行期新增输入/输出流增加重复 path 拒绝;配置保存改为临时文件写入后原子替换
  • Web 页面增加配置保存状态提示,新增/启停/删除输入输出流后提示未保存
  • 将 EPHUB Web API 归并到统一 Web API 章节
  • 补充 EPHUB 控制台降噪说明:输入/输出流后台重连失败不刷 CLI,详细原因写入 trace
  • 明确 -x 1 可查看输入/输出打开失败、重连、Web 启停等生命周期日志
  • 补充 EPHUB 当前告警与完好性事件的 FAQ 说明

2026-06-19

  • JSON 序列化全面迁移至 yyjson
  • 移除手写 json_util.h,全项目 JSON 构建统一使用 yyjson 库
  • 优化 EPHUB、STRHUB、SCRHUB 管理页面 UI 与移动端适配
  • 改进 admin 用户管理操作图标

2026-06-18

  • EPHUB 安全加固与功能增强
  • 修复路径遍历漏洞,添加全局 URI 安全检查(阻断 %2F%5c 编码攻击)
  • 修复 _stricmp 可移植性问题,添加 Linux/macOS 兼容宏
  • 修复 JSON 缓冲区过大(2MB → 256KB)和 global_hub 线程安全问题
  • 修复 key_is_older 环绕处理、缓替替换逻辑、out_bytes 类型截断
  • 优化 rebroadcast_cache 锁粒度,批量复制减少锁竞争
  • 新增 EPHUB Web 管理界面(端口 5428),支持实时状态监控和 HTTP API
  • 新增自动重连、缓存过期、源优先级功能
  • 默认刷新间隔改为 1 秒

2026-06-18

  • 新增 EPHUB 广播星历 Hub
  • 支持多路 NTRIP/RTCM3 输入的广播星历抽取、缓存、重复过滤和周期重播
  • 支持文件输出与 TCP Server 输出,便于本地验证和 RTKNAVI 连接观察
  • 新增命令式控制台查询和分级 trace 日志,避免后端周期刷屏

2026-06-05

  • 后端安全加固
  • SCRHUB 增加脚本路径校验,限制任务只能执行 script/ 目录下的安全相对路径
  • SCRHUB 数据库启用 WAL、busy timeout 和互斥访问,降低并发读写风险
  • 登录密码哈希比较改为恒定时间比较,登录限流表满时替换最旧 IP 记录
  • API 默认移除通配 CORS;审计日志默认保留最近 10000 条,可通过 WEB_AUDIT_DISABLE_RETENTION 关闭

2026-06-01

  • 前端 UI 原语统一
  • 新增 public/css/ui.css,统一按钮、卡片、徽标、空状态、工具栏和表单控件
  • SCRHUB、系统设置、监测页面和用户管理页面逐步对齐 ui-cardui-btnui-badge 等通用样式
  • 页面 CSS 更聚焦布局,颜色与基础视觉变量收敛到 public/css/tokens.css
  • 增加 CSS typography 令牌检查脚本,并收紧 SCRHUB 移动端任务列表密度

2026-05-31

  • 嵌入式 SCRHUB 任务管理
  • SCRHUB 嵌入主界面侧边栏,减少独立页面跳转
  • 支持从 script/ 目录递归扫描脚本并创建任务
  • 任务配置和执行日志写入独立数据库 database/rtkhub_scr.db
  • 新增日志保留策略:7 天、14 天、30 天、从不清理和自定义天数

v1.2.0(2026-04-30)

卫星级可视化、Web API 扩展、地图精度和核心代码可维护性。

✨ 新增功能

卫星级统计 API

  • 新增 /api/stat 接口
  • 实时卫星观测和残差数据
  • 方位角、高度角、SNR、固定状态

卫星天空图

  • 显示 GPS/BDS 等多系统卫星
  • FIX/FLOAT/未使用状态可视化
  • 卫星运动轨迹
  • 交互式选择和悬停提示

卫星残差分析

  • 当前历元残差总览
  • 单颗卫星残差时序
  • 伪距和载波残差分别显示

地图坐标投影

  • GCJ-02(高德/腾讯)
  • BD-09(百度)
  • WGS84(Google/原始)

STRHUB 工具

  • 独立流转发工具
  • Visual Studio 项目
  • Web 监控页面

🔧 改进

  • 前端渲染和缓存优化
  • FLOAT 过滤逻辑优化
  • 移动端布局统一
  • 网络/通道管理重构

🐛 修复

  • ABMPAR 选项处理
  • 部分内存泄漏

⚠️ 重大变更

  • HTTP 服务器:Mongoose → CivetWeb(解决 GPL 风险)

v1.1.0(2026-04-29)

首个功能增强版本。

✨ 新增功能

SCRHUB 脚本管理

  • 嵌入主界面
  • 递归扫描脚本目录
  • Cron 定时任务
  • 执行日志持久化

审计日志

  • 完整操作审计
  • 登录、控制、管理记录
  • SQLite 存储

Web 终端会话隔离

  • 独立用户会话
  • 命令历史记录

🔧 改进

  • 用户管理界面优化
  • 移动端响应式优化

v1.0.0(2026-03-22)

🎉 首次公开发布!

✨ 核心功能

多网络 RTK 监控

  • 支持 500 条并发基线
  • 按测网组织
  • 实时状态监控
  • 批量启停

Web 控制台

  • 现代化界面
  • 实时监测面板(ENU、卫星、DOP、Ratio)
  • 运行总览
  • 网络分布地图
  • Web 终端

用户认证

  • SQLite 数据库
  • 三种角色(admin/operator/viewer)
  • 会话管理
  • 密码哈希

零依赖部署

  • 单文件运行
  • SQLite 内嵌
  • CivetWeb 内嵌
  • 可嵌入前端资源

🛠️ 技术栈

  • C99
  • RTKLIB demo5
  • CivetWeb
  • SQLite 3
  • yyjson
  • 原生 JavaScript (ES6+)
  • ECharts 5.x
  • Leaflet 1.x

📦 工具套件

  • STRHUB
  • EPHUB
  • RNX2RTKP
  • RNX2RTCM

🎯 性能

  • 单基线:14MB → 5.6MB
  • 最大:500 条基线

路线图

v1.3.0(计划中)

  • RAIM 完好性监测
  • 故障探测与剔除(FDE)
  • 告警推送
  • 数据导出增强

v2.0.0(未来)

  • 分布式部署
  • PostgreSQL/MySQL
  • 前端框架重构
  • 移动 App

升级指南

从 v1.1.0 → v1.2.0

  1. 备份数据
Copy-Item -Path conf, database, result -Destination backup -Recurse
  1. 停止服务并替换可执行文件

  2. 启动新版本

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

数据库自动兼容,无需手动迁移。


许可证

第三方依赖:

  • RTKLIB - BSD 2-Clause
  • CivetWeb - MIT
  • SQLite - Public Domain
  • yyjson - MIT
  • ECharts - Apache 2.0
  • Leaflet - BSD 2-Clause