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

35 lines
1.7 KiB
Markdown

# 第 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/运行时。
在后端目录执行:
```powershell
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 的多会话、多实例互斥、实际业务事务回滚、
提交与审核/撤销竞争、转正与编辑竞争、重复/乱序契约锁回调、企业盖章网络断开及中断恢复。
不得将这套离线用例当成真实平台压测或数据库集成测试结果。