基线: v1.20 (e58137c) | 分支: agent1.21bate
## P0 严重修复 (14项)
- 安全: 命令注入漏洞修复 (SpecificTimeTaskService)
- 安全: 路径穿越漏洞修复 (AgentEndpoint)
- 安全: 下载安全加固 (AdvancedAsyncDownloader)
- 数据: CPU avg1/avg5/avg15 赋值错误修复 (CPUServiceImpl)
- 数据: 磁盘读写字节/速率赋值反转修复 (DiskServiceImpl)
- 逻辑: updateTaskInterval 丢失原始任务修复 (DynamicTaskService)
- 并发: GlobalConfig 100+ 静态字段 volatile + 并发集合
- 性能: SessionManager O(n)->O(1) Channel反向映射
- 并发: SessionManager 序列号 AtomicInteger
- 并发: CompensatedTrigger CAS 竞态修复
- 泄漏: UDPListenHandler ByteBuf 内存泄漏修复
- NPE: BaseNettyServer stop() 空指针修复
- 线程: AsyncCommandExecutor 无界线程池改有界+守护线程
- 泄漏: AdvancedAsyncDownloader 连接和线程池资源释放
## P1 重要修复 (5项)
- NetServiceImpl: Process 资源泄漏 + 超时控制
- DockerServiceImpl: 数组越界保护 + 资源释放
- MemoryServiceImpl: 除零风险修复
- SystemServiceImpl: 除零风险修复 + 异常处理规范化
## P2 代码质量 (6项)
- 100+ System.out/err -> AssertLog 日志框架
- e.printStackTrace() -> 结构化日志
- InterruptedException 中断状态恢复
- BaseNettyConfig Boolean 包装类型改基本类型
- BaseException cause 构造函数修复
- 新增安全配置项 (命令白名单/HMAC/下载安全/握手认证)
## 新增安全模块
- security/AuthHandshakeHandler.java - Netty握手认证
- security/HmacSignVerifier.java - HMAC签名验证
- security/SecureCommandExecutor.java - 安全命令执行器
- security/SecureFileDownloader.java - 安全文件下载器
- security/SecurityProperties.java - 安全配置属性
- security/SystemCommandRunner.java - 系统命令运行器
- 对应单元测试 4个
版本更新: pom.xml 0.0.1-SNAPSHOT -> 1.21-beta
application.yml 1.0 -> 1.21
涉及文件: 34个 (21 modified + 13 new)
代码变更: +1085/-868 lines
3.0 KiB
3.0 KiB
tr-agent-client 版本记录
版本规则
- 主版本号.次版本号-阶段标识
- 阶段标识: beta(测试版) / rc(候选版) / release(正式版)
版本历史
v1.21-beta (2026-07-22)
基线版本: v1.20 (commit: e58137c)
分支: agent1.21bate
变更范围: 代码安全审计与优化,涉及 21 个文件,+1085/-868 行
P0 严重修复 (安全 & 数据正确性)
- 命令注入漏洞修复 - SpecificTimeTaskService: 添加命令安全校验、白名单机制、危险字符检测
- 路径穿越漏洞修复 - AgentEndpoint: 添加 normalize() + startsWith() 路径校验
- 下载安全加固 - AdvancedAsyncDownloader: 添加协议白名单、文件大小限制、路径穿越防护
- CPU负载数据丢失修复 - CPUServiceImpl: avg1/avg5/avg15 三行全调 setAvg1(),1分钟和15分钟数据丢失
- 磁盘读写数据反转修复 - DiskServiceImpl: 读写字节和读写速率赋值完全反转
- 任务更新丢失修复 - DynamicTaskService: updateTaskInterval 用空 Runnable 替代了原始任务
- 线程安全修复 - GlobalConfig: 100+ 静态字段添加 volatile,集合改为 ConcurrentHashMap/CopyOnWriteArrayList
- Session查找性能修复 - SessionManager: 新增 Channel->Session 反向映射,O(n)->O(1)
- 序列号线程安全修复 - SessionManager: getSerialNumber 改用 AtomicInteger
- 竞态条件修复 - CompensatedTrigger: get+set 竞态改用 CAS 循环
- 内存泄漏修复 - UDPListenHandler: ByteBuf 未释放
- NPE修复 - BaseNettyServer: stop() 方法 NPE 风险
- 无界线程池修复 - AsyncCommandExecutor: 改为有界线程池 + 守护线程
- 资源泄漏修复 - AdvancedAsyncDownloader: 添加 connection.disconnect() 和线程池关闭
P1 重要修复 (资源管理 & 性能)
- 进程资源泄漏修复 - NetServiceImpl: Process 对象未销毁,添加 destroy + waitFor 超时
- Docker资源泄漏修复 - DockerServiceImpl: 数组越界保护 + Process 资源释放
- 除零风险修复 - MemoryServiceImpl: 内存总量为0时的除零异常
- 除零风险修复 - SystemServiceImpl: 磁盘总量为0时的除零异常
- 资源泄漏修复 - DockerServiceImpl/NetServiceImpl: Process/Reader 资源泄漏
P2 代码质量优化
- 日志规范化 - 100+ 处 System.out/err 替换为 AssertLog 日志框架
- 异常处理规范化 - 所有 e.printStackTrace() 替换为结构化日志
- 中断处理规范化 - InterruptedException 添加中断状态恢复 (Thread.currentThread().interrupt())
- 包装类型修复 - BaseNettyConfig: Boolean 包装类型改基本类型,消除 NPE 风险
- 异常构造修复 - BaseException: cause 构造函数未设置 code/msg
- 安全配置 - application-dev.yml: 新增安全配置项(命令白名单/HMAC签名/下载安全/握手认证)
v1.20 (基线)
commit: e58137c "修正脚本执行策略上报信息"
状态: 优化前最后一个稳定版本,本次更新的基线