1. 摘要
作为一名安全从业者,每次渗透测试后撰写报告都要耗费大量时间整理漏洞数据、截图、评级。我用 SOLO 从零搭建了一款安全报告自动生成器——导入扫描器报告后一键生成专业级安全报告,支持 11 款主流扫描器、14 种导出格式、3 套报告模板,并打包为跨平台桌面应用。
2. 背景
我是一名安全服务工程师,日常工作中需要使用 AWVS、Burp Suite、Nessus、XRay 等多款扫描工具,每轮测试结束后需要手动整理各工具的扫描结果,逐一评定漏洞等级、编写修复建议、排版报告。一份完整的渗透测试报告通常需要 4-6 小时,其中大量时间花在重复性的数据搬运和格式调整上。
我希望有一款工具能:自动解析各扫描器的原始报告 → 统一管理漏洞数据 → 一键生成格式规范的安全报告。
3. 实践过程
任务拆解
我将整个项目拆解为以下阶段,逐步交给 SOLO 实现:
-
基础框架搭建 — Flask 后端 + SQLite 数据库 + 前端页面骨架
-
扫描器解析器 — 逐个实现 11 款扫描器的报告解析
-
报告生成引擎 — 实现 Word/PDF/Excel/HTML 等 14 种格式导出
-
漏洞管理功能 — CRUD、CVSS 评分、去重、翻译
-
桌面应用封装 — Electron 壳 + 系统托盘 + 自动更新
-
体验打磨 — 登录认证、日志系统、代理支持、Bug 修复
使用 SOLO 的能力
| 能力 | 用途 |
|---|---|
| 多文件代码生成 | 一次性生成 11 个扫描器解析器、12 个报告生成器 |
| 代码审查与 Bug 修复 | 全量扫描代码逻辑,发现并修复 10+ 个 Bug(变量未定义、临时文件泄漏、焦点丢失等) |
| 跨文件重构 | 统一登录弹窗入口、重构报告保存流程、增强日志系统 |
| 技术选型 | 确定报告生成方案(python-docx/openpyxl/weasyprint)、翻译方案(离线字典+在线 API) |
| 文档编写 | 补充完善 1300+ 行的 README 使用说明 |
关键 Prompt 示例
“检测程序的每个代码逻辑,修复所有的 bug 和报错”
SOLO 启动了 3 个并行子任务,分别审查 Electron 主进程、前端页面、Python 后端,最终输出了一份包含 20+ 个问题的审查报告,按严重程度排序,并一次性全部修复。
“在漏洞管理页面点击一键翻译功能显示:翻译请求失败”
SOLO 定位到 translators 库未安装,安装后自动编写测试脚本验证离线翻译和在线翻译 API 均正常工作。
踩过的坑
-
Electron 焦点问题:登录弹窗在 401 拦截中弹出时密码框无法输入,需要 Alt+Tab 切换才能恢复。最终通过统一登录入口(
handleAuthAction)+ 宏任务延迟调用的方式解决 -
SPA 页面切换:滚动提示条的
setTimeout在页面切换后丢失,改用sessionStorage+ 全局setInterval解决 -
报告保存路径:Electron 桌面版需要弹窗让用户选择保存路径,而不是自动保存到固定目录
-
临时文件泄漏:
tempfile.mkdtemp()在异常路径下未清理,用try/finally包裹解决
4. 成果展示
项目地址
GitHub 仓库:sec-report-generator(MIT 开源协议)
核心功能
支持的 11 款扫描器: AWVS、Burp Suite、Nessus、Nmap、XRay、ZAP、Nuclei、SQLMap、安恒、绿盟、启明星辰
14 种导出格式: Word(.docx)、PDF、Excel(.xlsx)、HTML、Markdown、JSON、XML、CSV、TXT、Jira、DefectDojo 等
3 套报告模板:
-
企业合规版 — 完整合规检查项和风险评级
-
渗透实战版 — 突出漏洞利用路径和攻击链
-
简洁摘要版 — 适合管理层快速审阅
其他特性:
-
CVSS v3.1 自动评分
-
离线术语字典 + 在线 API 翻译(搜狗/百度/Google 等)
-
漏洞去重、批量管理
-
Webhook 通知(企业微信/钉钉/飞书/Slack)
-
跨平台桌面应用(Windows/macOS/Linux)
-
系统托盘、自动更新、文件拖拽导入
技术栈
Plain Text
后端:Flask + SQLite + python-docx + openpyxl + weasyprint
前端:Tailwind CSS + 原生 JavaScript(SPA)
桌面:Electron 28 + electron-builder
5. 效果与总结
提效效果:
-
报告撰写时间从 4-6 小时缩短到 30 分钟以内
-
扫描结果导入 → 报告生成全流程自动化
-
漏洞评级、翻译、去重一键完成
SOLO 在项目中的角色:
-
从零搭建了整个项目(后端 6 个路由模块 + 11 个解析器 + 12 个生成器 + Electron 桌面壳)
-
全程代码审查和 Bug 修复,保证了代码质量
-
跨文件重构能力让架构调整变得轻松
可复用的方法:
-
分阶段交付:先搭骨架、再填充功能、最后打磨体验,每个阶段都可以独立验证
-
并行审查:让 SOLO 同时审查前端/后端/桌面端,快速发现跨层问题
-
描述现象而非方案:报 Bug 时描述具体现象(“密码框需要 Alt+Tab 才能输入”),让 SOLO 自行定位根因