软件工程实践:从零到一,开发 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. 平台首页(关卡列表)

页面清晰简洁,难度分级明确,新手一目了然。

  1. AI 交互闯关页

模拟真实 AI 聊天,输入 Payload 即可触发验证,交互自然。

  1. 闯关成功页面

验证逻辑清晰,结果反馈及时。

  1. 后台核心代码(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' };
    }
    }

这段代码是项目核心,逻辑严谨、简单高效,支撑所有关卡验证。

  1. 数据库设计截图

表设计清晰,字段合理,满足用户数据持久化。

  1. Git 提交记录

全程版本控制,开发过程可追溯。

五、开发过程与挑战

  1. 技术挑战

跨域问题:前后端联调阶段频繁遇到跨域,最终配置 CORS 解决。

异步数据库操作:Node.js 异步逻辑不熟练,多次调试。

Payload 规则设计:如何简单又能体现注入原理,反复调整。

  1. 协作挑战

初期需求不一致:对关卡规则理解不同,讨论很久。

分工边界模糊:联调阶段责任不清,互相推。

沟通不及时:小问题积累,后期集中爆发。

  1. 如何解决

统一原型 + 文档:前期原型、类图、需求全部对齐。

明确分工:前端、后端、算法固定负责。

每日站会:15 分钟同步进度、暴露问题。

结对互审:代码提交前互相检查。

六、收获与成长

  1. 技术能力提升

掌握前后端分离开发、RESTful API 设计

熟练使用TypeScript、Node.js、Express、SQLite

学会核心算法设计、调试、优化

理解插件化架构、分层设计、模块化

  1. 软件工程能力

完整经历需求→设计→编码→测试→部署→文档→复盘

学会WBS、敏捷迭代、燃尽图、版本管理

养成代码规范、注释、测试、文档习惯

  1. 团队协作能力

从陌生到默契,从磨合到创造

学会分工、沟通、妥协、互助、复盘

理解1+1>2的团队力量

  1. 思维转变

从只会写代码 → 会做产品

从单打独斗 → 团队协作

从不重视规范 → 重视质量与维护

七、心得体会

  1. 软件工程 = 规范 + 协作 + 质量 + 复盘

以前以为软件工程是纸上谈兵,做完项目才知道:规范能减少 80% 错误,协作能提高效率,质量决定产品寿命,复盘让人成长。

  1. 团队比个人重要

一个人能写代码,但一个团队才能做出软件。互相包容、互相支持、及时沟通,是项目成功关键。

  1. AI 是强大工具,但不能替代

AI 帮我写代码、写文档、写测试、整理思路,效率翻倍。但需求理解、逻辑设计、质量把控、创新必须靠人。AI 辅助、人工主导,才是正确方式。

  1. 从零到一,最难的是开始

项目初期最难:技术不熟、需求不清、分工不明、焦虑迷茫。坚持下来,一步一步走,就会慢慢变好。

项目截图:

gitee 地址:SE-NetSec-2026-网安盾影队: 网安23级软件工程课程团队项目仓库,用于网络安全相关工具/系统的开发、协作与版本管理

八、总结

本次软件工程课程实践,不仅完成了AI 提示注入闯关平台,更完成了一次真正的软件工程实战。收获的不只是代码,更是思维、能力、协作、心态的全面成长。未来会继续努力,把学到的软件工程思维用到更多项目中,不断进步。

相关推荐
信誓旦旦的程序猿几秒前
【量化系统从零构建 #04】存储设计:选型·建库·交易日历
java·人工智能·python·股票数据api·股票数据·股票数据api接口·股票api数据接口
、如果5 分钟前
PDF图片文字提取零依赖方案:pymupdf+AI视觉实战
人工智能·数据分析·pdf·图片提取·文字提取·skills
米小虾9 分钟前
不偷权重,只问问题:蒸馏攻击是怎么把前沿模型"问"走的,以及什么真能挡住
人工智能
2601_9605544717 分钟前
会议录音一键生成纪要:实测告别手工整理
人工智能
米小虾20 分钟前
一周 AI 观察(9.5–9.11):AI 从"产品"变成"基础设施"
人工智能
Behaviour21 分钟前
iPhone Duo 来了,苹果 Siri AI 接入定制 Gemini
人工智能·ios·语言模型·aigc·iphone
不要生病了40 分钟前
扩散语言模型的“灵活性陷阱”:为什么训练时反而应该按自回归顺序探索?
人工智能·语言模型·回归
前端snow1 小时前
ai agent---语音交互
人工智能
IT·陈寒1 小时前
Vue组件props传对象给我整不会了
人工智能·大模型·api·创业·变现·简历优化
郝学胜-神的一滴1 小时前
C++11 工程级应用 09:告别无谓拷贝,解锁高性能移动语义
开发语言·数据结构·c++·vscode·软件工程·visual studio