## 审查范围 对 GeneralUpdate.Core 全模块(Bootstrap / Pipeline / Differential / IPC / Security / Strategy / FileSystem / Hooks / Silent / GracefulExit)进行系统性代码审查。 ## 修复状态:✅ 全部完成(17/17) 修复 PR: [#516](https://github.com/GeneralLibrary/GeneralUpdate/pull/516) --- ### 🔴 Critical(1/1 已修复) **C1 — GetTempDirectory() 路径遍历风险** — `Pipeline/DiffPipeline.cs:575` 修复: 改用 `StartsWith+Substring` 替代 `string.Replace` 做路径计算。 --- ### 🟠 High(4/4 已修复) **H1 — BsdiffDiffer 大文件 OOM** — `Pipeline/DiffPipelineOptions.cs`, `DiffPipeline.cs` 修复: 新增 `MaxInputFileSize` 属性,调用 differ 前校验文件大小,超限时抛 `InvalidOperationException`。默认 0 表示不限制。 **H2 — Process.Start 返回值未检查** — 5 个 Strategy 文件 修复: 所有 `Process.Start()` 均检查返回值,失败时抛异常。 **H3 — UnixPermissionHooks 参数注入** — `Hooks/IUpdateHooks.cs:52` 修复: .NET 6+ 用 `ArgumentList`;netstandard2.0 保留引号包裹缓解方案。 **H4 — SafeOnBeforeUpdateAsync 异常时行为错误** — `Strategy/ClientStrategy.cs:1015-1026` 修复: 异常时返回 `false`(中止更新)而非 `true`(放行更新)。 --- ### 🟡 Medium(7/7 已修复) **M2 — HttpClientProvider 无限超时** — `Network/HttpClientProvider.cs:41` 修复: 设置 5 分钟安全网上限,替代 `InfiniteTimeSpan`。 **M3 — StorageManager 目录跳过使用子串匹配** — `FileSystem/StorageManager.cs` 修复: `GetAllFiles` 和 `CopyDirectory` 中的 `Contains` 改为 `StartsWith` 前缀匹配。 **M4 — DateTime.Now 替换** — `FileSystem/StorageManager.cs` 修复: `GetTempDirectory` 和 `GetBackupDirectoryName` 均改为 `DateTime.UtcNow`。 **M6 — SilentPollOrchestrator 后台异常静默** — `Silent/SilentPollOrchestrator.cs:84-88,132-137` 修复: 轮询异常和后台线程异常通过 `EventManager` 分发 `ExceptionEventArgs`。 **M7 — DefaultDirtyMatcher 缺少 null 校验** — `Differential/DefaultDirtyMatcher.cs:34` 修复: 添加 `ArgumentNullException` 守卫。 **M8 — GracefulExit 无窗口进程文档** — `GracefulExit.cs` 修复: 补充 `CloseMainWindow()` 对无窗口进程行为的 XML doc。 --- ### 🟢 Low(5/5 已修复) | # | 文件 | 问题 | 修复 | |---|------|------|:----:| | L1 | `DiffPipeline.cs:530-533` | CopyUnknownFiles fallback 使用完整绝对路径 | ✅ 改为 skip | | L2 | `AbstractStrategy.cs:147` | patchRoot 异常时未清理 | ✅ 移至 finally | | L4 | `Environments.cs:39` | IPC key 无字符校验,可路径遍历 | ✅ 白名单校验 | | L5 | `IProcessInfoProvider.cs:82-83` | 冗余 File.Delete | ✅ 移除 | | L7 | `Bootstrap.cs:580` | CallSmallBowlHomeAsync 空名静默 | ✅ 记录警告 | --- ## 验证 - ✅ 三框架编译通过(netstandard2.0 / net8.0 / net10.0),0 错误 0 新警告 - ✅ 16 文件修改,+207 / −33 行 - ✅ 所有修复不改变现有公开 API 行为 ## 结论 **GeneralUpdate.Core 代码审查中发现的全部安全隐患和质量缺陷(17/17)均已通过 PR #516 修复。可以正常使用。**
Activity
[-][Code Review] GeneralUpdate.Core 安全隐患与代码质量问题报告[/-][+][Code Review] GeneralUpdate.Core 全量代码审查报告 — 17/17 项已修复[/+]