fix: 安全修复与功能改进(1.7-SNAPSHOT) #3

Merged
database-mysql merged 3 commits from fix/security-and-quality into main 2026-10-18 16:41:39 +08:00
Owner

变更摘要

  • 安全:修复 Zip-Slip 路径穿越漏洞(解压校验条目路径并拒绝符号/硬链接条目)
  • 安全:AES 升级为 AES-256/GCM(随机 IV + 认证标签);RSA 实现真实混合加密(RSA-2048/OAEP + AES-GCM);密钥文件限制为仅属主可读写
  • 健壮性:加解密流式处理大文件,临时文件 + 原子替换,中途失败不损坏原数据
  • 修复:随机数上界溢出、ColorPrintlnPlus 格式码叠加、getJarPath URI 解析、临时目录唯一命名
  • 修复:getHWID 命令执行加超时并排空输出流,Windows 改用 PowerShell CIM(wmic 回退),修正 Linux 磁盘序列号命令,MAC 优先物理网卡
  • 工程:测试全部迁移至 JUnit 5(53 个用例),pom 补元数据与插件版本,版本统一为 1.7-SNAPSHOT
  • 文档:README / INFO 按 1.7 现状更新

验证:mvn clean package -> BUILD SUCCESS,Tests run: 53, Failures: 0, Errors: 0

## 变更摘要 - 安全:修复 Zip-Slip 路径穿越漏洞(解压校验条目路径并拒绝符号/硬链接条目) - 安全:AES 升级为 AES-256/GCM(随机 IV + 认证标签);RSA 实现真实混合加密(RSA-2048/OAEP + AES-GCM);密钥文件限制为仅属主可读写 - 健壮性:加解密流式处理大文件,临时文件 + 原子替换,中途失败不损坏原数据 - 修复:随机数上界溢出、ColorPrintlnPlus 格式码叠加、getJarPath URI 解析、临时目录唯一命名 - 修复:getHWID 命令执行加超时并排空输出流,Windows 改用 PowerShell CIM(wmic 回退),修正 Linux 磁盘序列号命令,MAC 优先物理网卡 - 工程:测试全部迁移至 JUnit 5(53 个用例),pom 补元数据与插件版本,版本统一为 1.7-SNAPSHOT - 文档:README / INFO 按 1.7 现状更新 验证:mvn clean package -> BUILD SUCCESS,Tests run: 53, Failures: 0, Errors: 0
database-mysql added 3 commits 2026-10-18 16:41:35 +08:00
- compress: 修复 Zip-Slip 路径穿越(UnZip/UnTarGz 校验条目路径并拒绝链接条目)
- encrypt: AES 升级为 AES-256/GCM,RSA 改为真实混合加密,流式处理大文件,
  临时文件+原子替换避免损坏原文,密钥文件限制为属主可读写,DES 标记废弃
- random: 修复上界 Integer.MAX_VALUE 溢出,randomString 参数校验
- echo: ColorPrintlnPlus 格式码叠加(颜色+加粗等),颜色码输入校验防终端注入
- hwid: ProcessBuilder+超时+并发排空输出流,Windows 改用 PowerShell CIM(wmic 回退),
  修正 Linux 磁盘序列号命令,MAC 优先物理网卡,哈希失败不再回退 hashCode
- runtime: getJarPath 经 URI 解析(处理空格/编码),临时目录改用 Files.createTempDirectory
- file: CreateFile 移除死代码与假异步;CompressPNG 临时文件+原子替换,阈值空校验
- build: pom 补元数据/插件版本/manifest 版本注入,version 与 pom 对齐并读取 Implementation-Version
- test: 全部测试迁移为 JUnit 5(53 个用例),删除 System.exit 式手写测试与 10 亿次循环测试
- chore: 删除 cp.txt 并加入 .gitignore
database-mysql merged commit 30f2c04d13 into main 2026-10-18 16:41:39 +08:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: database-mysql/gnu_java_utils_library#3