Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录
切换导航
U
ubains-module-test
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
郑晓兵
ubains-module-test
Commits
72170d64
提交
72170d64
authored
7月 22, 2026
作者:
陈泽健
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs(security): 更新安全测试模块HANDOFF交接文档
Co-Authored-By:
Claude
<
noreply@anthropic.com
>
上级
4c3301ee
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
98 行增加
和
69 行删除
+98
-69
HANDOFF_安全测试.md
HANDOFF_安全测试.md
+98
-69
没有找到文件。
HANDOFF_安全测试.md
浏览文件 @
72170d64
# HANDOFF — 安全测试模块会话交接文档
# HANDOFF — 安全测试模块会话交接文档
> **生成时间**: 2026-07-2
1
> **生成时间**: 2026-07-2
2
> **当前分支**: `platform-auto-test`
> **当前分支**: `platform-auto-test`
> **开发窗口**: 安全测试模块(与会议管理窗口并行)
> **开发窗口**: 安全测试模块(与会议管理窗口并行)
> **最近提交**: `
68b2fbbf` feat(security): 安全测试报告生成服务+格式对齐参考实现
> **最近提交**: `
4c3301ee` feat(security): 前端报告中心适配安全报告+补充API3/4/6/7/9/10用例
> **状态**: ✅ 安全测试
引擎 + 报告生成服务已
全部完成并推送
> **状态**: ✅ 安全测试
P1 任务
全部完成并推送
---
---
...
@@ -25,21 +25,59 @@
...
@@ -25,21 +25,59 @@
## 一、本次任务(已完成)
## 一、本次任务(已完成)
### 任务:
为平台增加 API 接口安全测试能力 + 报告生成
### 任务:
安全测试模块 P1 待办
**核心成果**
:
**核心成果**
:
1.
✅ 后端安全测试引擎(SecurityExecutor + HttpClient 签名 + AuthHelper 多账号)
1.
✅ 前端报告中心适配安全报告(Markdown 渲染 + 主题适配 + 下载功能)
2.
✅ 12 个安全测试模块 + 24 个安全测试用例
2.
✅ 补充 API3/4/6/7/9/10 安全测试用例(18 个新用例,总计 42 个)
3.
✅ 前端适配(Cases.vue / Execution.vue 支持 security 类型)
4.
✅ 执行调度分流修复(security 用例不再误走 PlaywrightExecutor)
5.
✅ 端到端自测通过(3/3 用例正常执行)
6.
✅
**安全测试报告生成服务**
(7 章节 Markdown,格式对齐参考实现)
---
---
## 二、已完成事项清单
## 二、已完成事项清单
### 2.1 后端新增文件(9个)
### 2.1 前端改造
| 文件 | 说明 |
|------|------|
|
`frontend/package.json`
| 新增
`marked`
依赖 |
|
`frontend/src/views/Reports.vue`
| 安全报告 Markdown 渲染 + 类型标签 + 下载功能 + 主题适配 |
**Reports.vue 关键变更**
:
-
报告列表新增"报告类型"列,区分"安全测试"和"UI自动化"
-
新增安全测试报告弹窗,使用
`marked`
渲染 Markdown 内容
-
`viewReport()`
/
`downloadReport()`
按
`case_type`
分流
-
GitHub 风格 Markdown 样式,使用 CSS 变量适配深色/浅色主题
-
弹窗内和列表操作栏均支持下载
### 2.2 后端用例补充
| 文件 | 说明 |
|------|------|
|
`backend/scripts/create_security_cases.py`
| 新增 18 个用例定义 |
**新增用例清单**
:
| 模块 | 用例数 | 用例 ID | 风险等级 |
|------|--------|---------|----------|
| API3 - 对象属性级别授权失效 | 3 | sec_2_3_001/002/003 | high/medium/high |
| API4 - 资源消耗不受限 | 3 | sec_2_4_001/002/003 | high/medium/medium |
| API6 - 无限制访问敏感业务流 | 3 | sec_2_6_001/002/003 | high/medium/high |
| API7 - 服务器端请求伪造 | 3 | sec_2_7_001/002/003 | critical/critical/high |
| API9 - 库存管理不当 | 3 | sec_2_9_001/002/003 | high/medium/low |
| API10 - 不安全的第三方API集成 | 3 | sec_2_10_001/002/003 | high/medium/critical |
### 2.3 文档
| 文件 | 说明 |
|------|------|
|
`Docs/PRD/需求文档/_PRD_安全测试模块P1待办任务_需求文档.md`
| P1 需求文档 |
|
`Docs/PRD/需求文档/_PRD_安全测试模块P1待办任务_计划执行.md`
| P1 计划执行文档 |
---
## 三、历史已完成(前次会话)
### 3.1 后端安全测试引擎
| 文件 | 说明 |
| 文件 | 说明 |
|------|------|
|------|------|
...
@@ -51,15 +89,10 @@
...
@@ -51,15 +89,10 @@
|
`backend/app/executors/security_executor.py`
| 安全测试执行引擎核心 |
|
`backend/app/executors/security_executor.py`
| 安全测试执行引擎核心 |
|
`backend/app/services/security_service.py`
| 安全测试业务逻辑层 |
|
`backend/app/services/security_service.py`
| 安全测试业务逻辑层 |
|
`backend/app/services/knowledge_base.py`
| 知识库(14历史漏洞 + 15华为红线 + SQL载荷) |
|
`backend/app/services/knowledge_base.py`
| 知识库(14历史漏洞 + 15华为红线 + SQL载荷) |
|
`backend/app/routers/security.py`
| API 路由(13个接口,含报告 API) |
### 2.2 后端新增文件(报告生成)
| 文件 | 说明 |
|------|------|
|
`backend/app/services/security_report_service.py`
| 报告生成服务(7 章节 Markdown,格式对齐参考实现) |
|
`backend/app/services/security_report_service.py`
| 报告生成服务(7 章节 Markdown,格式对齐参考实现) |
|
`backend/app/routers/security.py`
| API 路由(13个接口,含报告 API) |
###
2.3
后端修改文件
###
3.2
后端修改文件
| 文件 | 修改内容 |
| 文件 | 修改内容 |
|------|---------|
|------|---------|
...
@@ -69,7 +102,7 @@
...
@@ -69,7 +102,7 @@
|
`backend/app/schemas/test_case.py`
|
`steps`
字段改为 Union(支持 list/dict) |
|
`backend/app/schemas/test_case.py`
|
`steps`
字段改为 Union(支持 list/dict) |
|
`backend/app/services/case_service.py`
| 创建用例时区分 UI(list)/security(dict) |
|
`backend/app/services/case_service.py`
| 创建用例时区分 UI(list)/security(dict) |
###
2.4 前端新增/修改
文件
###
3.3 前端
文件
| 文件 | 说明 |
| 文件 | 说明 |
|------|------|
|------|------|
...
@@ -78,30 +111,11 @@
...
@@ -78,30 +111,11 @@
|
`frontend/src/views/Cases.vue`
| 安全用例显示风险等级 emoji/标签、详情弹窗 |
|
`frontend/src/views/Cases.vue`
| 安全用例显示风险等级 emoji/标签、详情弹窗 |
|
`frontend/src/views/Execution.vue`
| 执行弹窗(配置选择)、分流安全/UI执行逻辑 |
|
`frontend/src/views/Execution.vue`
| 执行弹窗(配置选择)、分流安全/UI执行逻辑 |
### 2.5 脚本文件
| 文件 | 说明 |
|------|------|
|
`backend/scripts/create_security_cases.py`
| 创建 12 模块 + 24 用例 |
|
`backend/scripts/create_default_security_config.py`
| 创建默认安全测试配置 |
|
`backend/scripts/test_security_e2e.py`
| 端到端执行测试 |
### 2.6 文档
| 文件 | 说明 |
|------|------|
|
`Docs/PRD/需求文档/_PRD_安全测试模块需求文档.md`
| 需求文档 |
|
`Docs/PRD/需求文档/_PRD_安全测试模块_计划执行.md`
| 计划执行文档 |
|
`Docs/PRD/需求文档/_PRD_安全测试报告_设计文档.md`
| 报告设计文档 |
|
`Docs/PRD/需求文档/_PRD_安全测试报告格式对齐_需求文档.md`
| 报告格式对齐需求 |
|
`Docs/PRD/需求文档/_PRD_安全测试报告格式对齐_计划执行.md`
| 报告格式对齐计划 |
|
`Docs/PRD/问题处理/安全测试/*.md`
| 问题处理文档 |
---
---
##
三、安全测试报告生成服务(已完成)
##
四、安全测试报告生成服务
###
3
.1 报告 7 章节结构(对齐参考实现)
###
4
.1 报告 7 章节结构(对齐参考实现)
| 章节 | 编号 | 内容 | 数据来源 |
| 章节 | 编号 | 内容 | 数据来源 |
|------|------|------|---------|
|------|------|------|---------|
...
@@ -115,47 +129,59 @@
...
@@ -115,47 +129,59 @@
| 测试环境与工具 |
**六**
| 服务器(含架构)/工具/标准 | SecurityConfig |
| 测试环境与工具 |
**六**
| 服务器(含架构)/工具/标准 | SecurityConfig |
| 参考资料 |
**七**
| Z 盘路径 | REFERENCE_MATERIALS 常量 |
| 参考资料 |
**七**
| Z 盘路径 | REFERENCE_MATERIALS 常量 |
### 3.2 格式对齐要点
### 4.2 报告 API
| 对齐项 | 内容 |
|--------|------|
| OWASP 覆盖矩阵 |
**5 列**
(🔴高危/🟠中危/🟡低危/🔵信息/🟢安全),无"严重"列 |
| critical 处理 | 合并到 high 列统计,漏洞详情标题仍显示"严重" |
| 历史漏洞表格 |
**6 列**
(编号/漏洞来源/测试项/当前状态/风险等级/详情) |
| 服务器信息 | 含架构后缀
`192.168.5.44 (X86架构-欧拉)`
|
| 执行完成自动生成 | 路径存入
`execution.config.report_path`
|
### 3.3 报告 API
```
```
GET /api/security/executions/{id}/report → 返回 Markdown 内容
GET /api/security/executions/{id}/report → 返回 Markdown 内容
GET /api/security/executions/{id}/report/download → 下载 .md 文件
GET /api/security/executions/{id}/report/download → 下载 .md 文件
```
```
### 4.3 前端报告渲染
-
使用
`marked`
库渲染 Markdown
-
GitHub 风格样式,CSS 变量适配深色/浅色主题
-
报告弹窗内支持下载
---
---
##
四、当前数据状态(已入库)
##
五、当前数据状态
| 内容 | 数量 | 备注 |
| 内容 | 数量 | 备注 |
|------|------|------|
|------|------|------|
| 安全测试模块 | 12 | sec_api01~sec_api10 + sec_regression + sec_redline |
| 安全测试模块 | 12 | sec_api01~sec_api10 + sec_regression + sec_redline |
| 安全测试用例 |
24 | 覆盖 API1/2/5/8 + 回归 + 红线(API3/4/6/7/9/10 待补)
|
| 安全测试用例 |
42 | 全部 OWASP API1-10 + 回归 + 红线覆盖
|
| 安全测试配置 | 1 |
`sec_cfg_default`
(新统一平台 192.168.5.44) |
| 安全测试配置 | 1 |
`sec_cfg_default`
(新统一平台 192.168.5.44) |
**用例分布**
:
| 模块 | 用例数 |
|------|--------|
| API1 - 对象级别授权失效 | 8 |
| API2 - 身份认证失效 | 4 |
| API3 - 对象属性级别授权失效 | 3 |
| API4 - 资源消耗不受限 | 3 |
| API5 - 功能级别授权失效 | 2 |
| API6 - 无限制访问敏感业务流 | 3 |
| API7 - 服务器端请求伪造 | 3 |
| API8 - 安全配置错误 | 4 |
| API9 - 库存管理不当 | 3 |
| API10 - 不安全的第三方API集成 | 3 |
| 历史漏洞回归测试 | 3 |
| 华为安全红线检查 | 3 |
---
---
##
五
、下一步计划(按优先级)
##
六
、下一步计划(按优先级)
| 优先级 | 待办 | 说明 |
| 优先级 | 待办 | 说明 |
|--------|------|------|
|--------|------|------|
|
**P1**
| 前端报告中心适配安全报告 | Reports.vue 增加 Markdown 渲染(markdown-it),或安全报告生成 HTML 版本 |
|
**P1**
| 补充 API3/4/6/7/9/10 用例 | 当前只覆盖 24 个,参考实现有 90+ |
|
**P2**
| WebSocket 实时进度推送 | 安全测试目前不推送步骤进度 |
|
**P2**
| WebSocket 实时进度推送 | 安全测试目前不推送步骤进度 |
|
**P2**
| 执行安全测试用例并验证报告 | 需执行完整安全测试流程,验证 42 个用例 + 报告渲染 |
|
**P3**
| 网盘上传 + ERP 任务对接 | 参考实现的功能,平台化后可选 |
|
**P3**
| 网盘上传 + ERP 任务对接 | 参考实现的功能,平台化后可选 |
---
---
##
六
、踩坑记录(安全测试专项,绝对不要重复踩)
##
七
、踩坑记录(安全测试专项,绝对不要重复踩)
| # | 现象 | 根因 | 正确做法 |
| # | 现象 | 根因 | 正确做法 |
|---|------|------|---------|
|---|------|------|---------|
...
@@ -166,37 +192,40 @@ GET /api/security/executions/{id}/report/download → 下载 .md 文件
...
@@ -166,37 +192,40 @@ GET /api/security/executions/{id}/report/download → 下载 .md 文件
| S5 | Windows curl 发中文 JSON body 失败 | Windows bash 编码 | 用 Python requests 脚本测试,不用 curl |
| S5 | Windows curl 发中文 JSON body 失败 | Windows bash 编码 | 用 Python requests 脚本测试,不用 curl |
| S6 | 报告测试目标为空 | 执行记录 config 无 config_id |
**回退到默认 SecurityConfig**
|
| S6 | 报告测试目标为空 | 执行记录 config 无 config_id |
**回退到默认 SecurityConfig**
|
| S7 | OWASP 矩阵多出"严重"列 | 平台有 critical 等级,参考实现没有 |
**critical 合并到 high 列统计**
|
| S7 | OWASP 矩阵多出"严重"列 | 平台有 critical 等级,参考实现没有 |
**critical 合并到 high 列统计**
|
| S8 | 数据库 locked 执行用例创建脚本失败 | 另一个窗口后端服务占用数据库 |
**与会议管理窗口协调脚本执行时间**
|
| S9 | Windows 脚本打印 ✅❌ 报 UnicodeEncodeError | GBK 编码无法编码 emoji |
`PYTHONIOENCODING=utf-8 python scripts/xxx.py`
|
---
---
##
七
、启动与验证
##
八
、启动与验证
```
bash
```
bash
# 后端(端口 8001,会议管理窗口在跑)
# 后端(端口 8001,会议管理窗口在跑
时用 8002
)
cd
backend
cd
backend
uvicorn app.main:app
--port
8001
uvicorn app.main:app
--port
8001
# 验证安全测试
# 前端(端口 3001,避免与会议管理窗口冲突)
PYTHONIOENCODING
=
utf-8 python scripts/test_security_e2e.py
cd
frontend
npm run dev
--
--port
3001
# 执行用例创建脚本(需确保另一个窗口未占用数据库)
cd
backend
PYTHONIOENCODING
=
utf-8 python scripts/create_security_cases.py
```
```
-
前端: http://localhost:3000/cases/security
-
前端: http://localhost:3001/cases/security
-
安全报告: http://localhost:3001/reports/security
-
API 文档: http://localhost:8001/docs(搜 security 标签)
-
API 文档: http://localhost:8001/docs(搜 security 标签)
-
被测系统: https://192.168.5.44
-
被测系统: https://192.168.5.44
---
---
##
八、已提交变更(安全测试窗口)
##
九、已提交变更
**提交记录**
:
**提交记录**
:
-
`001a68a9`
feat(security): 新增API接口安全测试模块
-
`001a68a9`
feat(security): 新增API接口安全测试模块
-
`68b2fbbf`
feat(security): 安全测试报告生成服务+格式对齐参考实现
-
`68b2fbbf`
feat(security): 安全测试报告生成服务+格式对齐参考实现
-
`4c3301ee`
feat(security): 前端报告中心适配安全报告+补充API3/4/6/7/9/10用例
**已提交文件**
:
-
后端新增(10个):安全测试引擎 + 报告生成服务
-
后端修改:main.py、models/__init__.py、execution_service.py、schemas/test_case.py、case_service.py、routers/security.py
-
前端:types/security.ts、api/security.ts、views/Cases.vue、views/Execution.vue
-
文档:PRD 需求文档、计划执行文档、报告设计文档、格式对齐文档
---
---
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论