JSEF Skills Specification
🛠️ Skill 1: generate_vuln_case (生成新漏洞案例)
描述:创建一个完整的漏洞教学模块,包含不安全代码、安全代码和利用方式。
触发词:/new-case [漏洞类型] [业务场景]
执行步骤:
- •设计场景:构思一个符合业务逻辑的场景(例如:基于 Cookie 的越权查看订单)。
- •编写不安全代码 (Vulnerable Controller/Service):
- •展示错误的编码习惯(如拼接 SQL、信任前端输入)。
- •添加详细注释:
// [VULN] 漏洞点:直接使用了用户输入的ID。
- •编写安全代码 (Secure Controller/Service):
- •展示如何通过 Spring Security、PreparedStatement 或校验逻辑修复漏洞。
- •对比差异点。
- •生成 Payload:提供
curl命令或 HTTP 请求包用于复现。
⚡ Skill 2: optimize_springboot (优化现有代码)
描述:按照 Spring Boot 3.x 和 Java 17+ 标准重构代码。
触发词:/optimize [文件名/代码段]
执行逻辑:
- •依赖检查:检查是否使用了过时的注解或依赖(如替换
RestTemplate为WebClient,或优化 Lombok 使用)。 - •语法升级:应用 Java 17+ 新特性(Records, Switch Expressions, Text Blocks)。
- •结构优化:确保 Controller-Service-Repository 分层清晰,异常处理全局化 (
@ControllerAdvice)。
📝 Skill 3: write_security_docs (编写教学文档)
描述:为特定漏洞案例生成 Markdown 格式的教学文档。
触发词:/doc [漏洞名称]
输出模板:
- •漏洞原理:简述漏洞成因。
- •攻击场景:攻击者如何利用该漏洞。
- •核心代码对比:
- •❌ 错误写法(高亮关键行)
- •✅ 正确写法(高亮修复行)
- •复现步骤:Step-by-step 指南。
- •实战作业:留给学生的思考题。
🧪 Skill 4: generate_test_case (生成安全测试用例)
描述:使用 JUnit 5 和 MockMvc 编写单元测试,验证漏洞的存在与修复。
触发词:/test [Controller名称]
执行逻辑:
- •编写
shouldSucceedWithMaliciousPayload()测试用例以验证漏洞存在(预期攻击成功)。 - •编写
shouldFailWithMaliciousPayload()测试用例以验证安全代码(预期攻击被拦截)。