软件工程实践:从零到一,开发 AI 提示注入闯关平台
一、前言
本学期软件工程课程实践,我和团队(网安盾影队)一起完成了AI 提示注入闯关平台的完整开发。从最开始对需求模糊、技术不熟悉,到最后完成可运行、可演示、可部署的完整项目,经历了完整的软件工程全流程:需求分析、架构设计、编码实现、测试、部署、文档、复盘。整个过程收获巨大,不仅提升了技术能力,更真正理解了软件工程思维、团队协作、规范、质量、沟通、复盘的重要性。
二、项目背景与意义
随着 AI 大模型快速普及,** 提示注入(Prompt Injection)** 成为最常见、最核心的安全漏洞之一。很多网络安全专业学生、CTF 选手、安全爱好者只听过概念,没有真正动手实践。市面上缺少轻量化、易部署、教学式、闯关式的 AI 安全实训平台。
因此我们开发了AI 提示注入闯关平台,目标是:
面向安全初学者,通过闯关学习提示注入原理
阶梯式难度,由易到难,逐步掌握 Payload 构造
轻量化,易部署,适合课堂教学、自学练习
完整闭环:闯关、验证、提示、解法、统计
项目技术栈:
前端:Angular + TypeScript
后端:Node.js + Express + TypeScript
数据库:SQLite
开发工具:VS Code、Git、Postman、Jest
协作工具:GitHub、飞书、墨刀、ProcessOn
三、项目整体架构
架构设计(前后端分离)
前端:页面渲染、交互、AI 对话界面、闯关展示
后端:API 接口、Payload 验证引擎、用户进度管理
数据库:用户表、关卡表、闯关记录表
核心引擎:AIPromptEngine,负责输入处理、规则匹配、漏洞判定
功能模块
闯关模块:8 个递进关卡,难度由易到难
AI 交互模块:模拟真实 AI 对话,支持用户输入 Payload
验证模块:Payload 关键词匹配,自动判定闯关成功 / 失败
进度模块:记录用户闯关状态、得分、尝试次数
提示模块:提供闯关提示与官方解法
四、核心功能展示
1. 平台首页(关卡列表)
页面清晰简洁,难度分级明确,新手一目了然。
2. AI 交互闯关页
模拟真实 AI 聊天,输入 Payload 即可触发验证,交互自然。
3. 闯关成功页面

验证逻辑清晰,结果反馈及时。
4. 后台核心代码(Payload 验证算法)
/**
* Payload验证核心算法
* 输入:用户输入内容、当前关卡规则
* 输出:是否成功+提示信息
*/
function validatePayload(userInput: string, rule: string): boolean {
// 统一转为小写,忽略大小写差异
const lowerInput = userInput.trim().toLowerCase();
// 拆分规则关键词(支持多关键词组合)
const keywords = rule.split(',').map(k => k.trim().toLowerCase());
// 检查是否包含所有关键词
return keywords.every(k => lowerInput.includes(k));
}
// 关卡验证主逻辑
function checkChallenge(
userInput: string,
challengeRule: string
): { success: boolean; message: string } {
if (validatePayload(userInput, challengeRule)) {
return { success: true, message: '🎉 闯关成功!Payload命中注入规则' };
} else {
return { success: false, message: '❌ 闯关失败,请尝试构造正确Payload' };
}
}
这段代码是项目核心,逻辑严谨、简单高效,支撑所有关卡验证。
5. 数据库设计截图

表设计清晰,字段合理,满足用户数据持久化。
6. Git 提交记录
全程版本控制,开发过程可追溯。
五、开发过程与挑战
1. 技术挑战
跨域问题:前后端联调阶段频繁遇到跨域,最终配置 CORS 解决。
异步数据库操作:Node.js 异步逻辑不熟练,多次调试。
Payload 规则设计:如何简单又能体现注入原理,反复调整。
2. 协作挑战
初期需求不一致:对关卡规则理解不同,讨论很久。
分工边界模糊:联调阶段责任不清,互相推。
沟通不及时:小问题积累,后期集中爆发。
3. 如何解决
统一原型 + 文档:前期原型、类图、需求全部对齐。
明确分工:前端、后端、算法固定负责。
每日站会:15 分钟同步进度、暴露问题。
结对互审:代码提交前互相检查。
六、收获与成长
1. 技术能力提升
掌握前后端分离开发、RESTful API 设计
熟练使用TypeScript、Node.js、Express、SQLite
学会核心算法设计、调试、优化
理解插件化架构、分层设计、模块化
2. 软件工程能力
完整经历需求→设计→编码→测试→部署→文档→复盘
学会WBS、敏捷迭代、燃尽图、版本管理
养成代码规范、注释、测试、文档习惯
3. 团队协作能力
从陌生到默契,从磨合到创造
学会分工、沟通、妥协、互助、复盘
理解1+1>2的团队力量
4. 思维转变
从只会写代码 → 会做产品
从单打独斗 → 团队协作
从不重视规范 → 重视质量与维护
七、心得体会
1. 软件工程 = 规范 + 协作 + 质量 + 复盘
以前以为软件工程是纸上谈兵,做完项目才知道:规范能减少 80% 错误,协作能提高效率,质量决定产品寿命,复盘让人成长。
2. 团队比个人重要
一个人能写代码,但一个团队才能做出软件。互相包容、互相支持、及时沟通,是项目成功关键。
3. AI 是强大工具,但不能替代
AI 帮我写代码、写文档、写测试、整理思路,效率翻倍。但需求理解、逻辑设计、质量把控、创新必须靠人。AI 辅助、人工主导,才是正确方式。
4. 从零到一,最难的是开始
项目初期最难:技术不熟、需求不清、分工不明、焦虑迷茫。坚持下来,一步一步走,就会慢慢变好。
项目截图:


gitee 地址:SE-NetSec-2026-网安盾影队: 网安23级软件工程课程团队项目仓库,用于网络安全相关工具/系统的开发、协作与版本管理
八、总结
本次软件工程课程实践,不仅完成了AI 提示注入闯关平台,更完成了一次真正的软件工程实战。收获的不只是代码,更是思维、能力、协作、心态的全面成长。未来会继续努力,把学到的软件工程思维用到更多项目中,不断进步。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)