- frontend-architecture-refactor: 拆分 hooks/组件、类型筛选器动态化 - http-checker-quality-hardening: ReDoS 防护、failure 格式修正、测试补全
29 lines
1.6 KiB
Markdown
29 lines
1.6 KiB
Markdown
## Why
|
||
|
||
HTTP checker 经过审查发现若干质量问题:failure 中 actual 值截断格式不符合 spec 要求(缺少字符计数)导致诊断信息不完整、regex 规则缺少 ReDoS 防护存在 CPU 阻塞风险、多条 JSON body 规则重复 parse 造成不必要开销、CSS 规则分支冗余、重定向测试覆盖不足。需要统一修复以提升健壮性和代码质量。
|
||
|
||
## What Changes
|
||
|
||
- 修正 `mismatchFailure` 中 actual 值截断格式,添加字符计数信息,格式为 `前 N 字符…(共 M 字符)`
|
||
- 为 regex body 规则和 match operator 添加 ReDoS 防护(执行超时或正则复杂度检测)
|
||
- 优化多条 JSON body 规则共享同一次 `JSON.parse` 结果,避免重复解析
|
||
- 精简 `body.ts` 中 `checkCssRule` 的冗余分支逻辑
|
||
- 精简 `execute.ts` 中提前 duration 检查的代码结构
|
||
- 补充重定向相关测试:303 method 转换、307/308 保持 method、相对路径 Location、混合 body rules 集成测试
|
||
|
||
## Capabilities
|
||
|
||
### New Capabilities
|
||
|
||
### Modified Capabilities
|
||
- `expect-body-checkers`: 新增 actual 值截断的具体实现要求(spec 已声明但未细化截断阈值和格式)
|
||
|
||
## Impact
|
||
|
||
- `src/server/checker/expect/failure.ts` — 新增截断逻辑
|
||
- `src/server/checker/runner/http/body.ts` — JSON parse 优化、CSS 分支精简
|
||
- `src/server/checker/runner/http/execute.ts` — duration 检查精简
|
||
- `src/server/checker/expect/operator.ts` — match operator ReDoS 防护
|
||
- `tests/server/checker/runner/http/runner.test.ts` — 补充重定向和集成测试
|
||
- `tests/server/checker/runner/shared/body.test.ts` — 补充截断相关测试
|