Files
OnboardXAdmin/tests/SecurityRegression
2026-09-17 09:53:50 +08:00
..
2026-09-17 09:53:50 +08:00
2026-09-17 09:53:50 +08:00
2026-09-17 09:53:50 +08:00
2026-09-17 09:53:50 +08:00
2026-09-17 09:53:50 +08:00

第 2、5 项安全修复离线回归

本测试直接链接生产代码的 BasePageInput、OnboardingOperationGate、OnboardingSignStateGuard 和状态常量。 不启动业务程序、不连接业务数据库、不联系契约锁,也不查询在线漏洞库。 SqlSugar 只生成 SQL。互斥测试使用模拟的外部租约,不代表 MySQL 集成测试。

运行

先在后端构建相应 net6.0 项目,确保 SimpleAdmin.Web.Entry/bin/Debug/net6.0 下已有 SqlSugar.dll 和 Newtonsoft.Json.dll。 测试需要本机已安装 .NET 8 SDK/运行时。

在后端目录执行:

dotnet run --project tests/SecurityRegression/SecurityRegression.csproj -p:NuGetAudit=false -p:UseSharedCompilation=false

测试使用本地 empty-feed,不向外网发送依赖信息。无新增 NuGet 包。 框架校验属性和友好异常由 Stubs.cs 替代;核心排序、异步重入和状态迁移逻辑直接引用源文件。

覆盖

  • SQL 排序表达式、注释、分号、制表符、换行、未知字段被拒绝。
  • asc/desc/ascend/descend、大小写及空排序方向兼容。
  • 安全排序由本地 ORM 生成 SQL。
  • 签约终态、防回退、归档状态保持。
  • 64 个竞争调用与同任务互斥;不同任务互不阻塞。
  • 同调用链嵌套任务锁可重入;正常/异常结束释放锁;调用方上下文不泄漏。

仍需测试环境验证

MySQL GET_LOCK/RELEASE_LOCK 的多会话、多实例互斥、实际业务事务回滚、 提交与审核/撤销竞争、转正与编辑竞争、重复/乱序契约锁回调、企业盖章网络断开及中断恢复。 不得将这套离线用例当成真实平台压测或数据库集成测试结果。