fix(security): 修复网安扫描相关严重/高危/中危漏洞并加固学生密码重置

关闭工作流 SpEL 命令执行与社团活动 SQL 注入,补齐越权、调试接口、登录喷洒和异常回显等问题;学生密码改为随机临时密码,Web/移动端支持复制。

Constraint: 流程发起/办理接口保持仅登录校验,避免影响请假审批
Rejected: 开启验证码 | Web/移动端登录页均未实现,开启会导致无法登录
Confidence: high
Scope-risk: broad
Not-tested: 生产环境与社团社长/指导老师视角
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
“wuzhen”andCursor committed 2026-10-26 13:44:51 +08:00
1 parent 845c7fd942
commit da8d332fac
79 files changed
+1156 -547

No files matched your search

+12 -8
View File
@@ -10,16 +10,18 @@
### 模块功能
学工老师按学号查询学生基本信息后,一键将对应学生登录账号密码重置为系统固定默认值。
学工老师按学号查询学生基本信息后,一键将对应学生登录账号密码重置为服务端随机生成的临时密码(2026-10-26 安全整改:取消固定默认密码)。
**不复用** `system:user:resetPwd`,避免把系统用户管理权下放给学工老师。
**核心约束**:
- 仅允许重置 `sys_user.account_type = '2'`(学生账号)
- 要求 `user_id = xg_student_msg.id`,且 `user_name` 与学号一致(若有用户名)
- 密码由服务端写死常量,前端不可传入自定义密码
- 有菜单/按钮权限即可操作任意学生,不做班主任数据范围限制
- 临时密码由服务端 SecureRandom 生成(10 位,含大小写、数字、特殊字符),前端不可传入自定义密码
- 数据范围:超管、校级账号(无学院)可操作全部学生;学院账号只能查询/重置本学院(或一年级代理学院)的学生
- 重置后立即踢下线该学生的所有在线会话
- 操作日志不记录响应体,临时密码不落库日志
**固定默认密码**(服务端常量,勿在客户端硬编码用于改密请求):`Hzdyjsxs123456!@#`
**临时密码**:仅在本次接口响应 `data` 中返回一次,由老师当面告知学生,学生登录后应自行修改。
### 权限说明
@@ -39,7 +41,7 @@
| 接口名称 | HTTP 方法 | 路径 | 权限要求 | 功能描述 |
| -------- | --------- | ---- | -------- | -------- |
| 按学号查询学生 | GET | `/studentMsg/studentMsg/queryByStudentNo/{studentNo}` | `studentMsg:studentPwdReset:query` | 返回姓名、学号、班级、班主任 |
| 重置学生密码 | PUT | `/studentMsg/studentMsg/resetStudentPassword/{studentNo}` | `studentMsg:studentPwdReset:reset` | 重置为固定默认密码 |
| 重置学生密码 | PUT | `/studentMsg/studentMsg/resetStudentPassword/{studentNo}` | `studentMsg:studentPwdReset:reset` | 重置为随机临时密码 |
---
@@ -87,7 +89,7 @@
- **接口路径**:`PUT /studentMsg/studentMsg/resetStudentPassword/{studentNo}`
- **权限标识**:`studentMsg:studentPwdReset:reset`
- **功能描述**:将学号对应学生登录密码重置为固定默认值;写操作日志「重置学生密码」
- **功能描述**:将学号对应学生登录密码重置为随机临时密码并踢下线;写操作日志「重置学生密码」(不记录响应)
- **防重复提交**:`@RepeatSubmit`
#### 路径参数
@@ -98,14 +100,15 @@
#### 请求体
无。密码由服务端常量生成 BCrypt 后写入,不允许客户端传密。
无。临时密码由服务端随机生成并 BCrypt 后写入,不允许客户端传密。
#### 成功响应
```json
{
"code": 200,
"msg": "操作成功"
"msg": "操作成功",
"data": "Abcdef@123"
}
```
@@ -117,6 +120,7 @@
| 无登录账号 | 该学生没有登录账号,无法重置密码 |
| 非学生账号 | 该账号不是学生账号,禁止重置 |
| 学号与登录名不一致 | 学号与登录账号不一致,请联系管理员 |
| 非本学院学生 | 只能操作本学院的学生 |
| 无权限 | 403 |
---