在线考试系统使用指南

发布时间:2026-08-07 阅读量:1 Go Gin 考试系统 Vue
在线考试系统使用指南

本指南介绍在线考试系统的完整使用方法,包括题库管理、试卷管理、考场管理、考试流程(含答题卡导航、题目标记、实时保存、编程题在线运行)、考试记录、错题本、人脸核身防作弊、AI智能功能、成绩分析报表(含实时监控大屏、按题批量阅卷与评分量规)、考试排行榜与竞赛模式以及服务器安全防护。


一、题库管理

题库是存放试题的文件夹,按学科或类别分类组织。

1.1 创建题库

  1. 进入「考试管理」→「题库管理」
  2. 点击「新建题库」
  3. 填写题库名称、描述和所属分类

1.2 添加题目

在题库中可以添加以下类型的题目:

题型说明判分方式
单选题提供多个选项,选择一个正确答案自动判分
多选题提供多个选项,选择多个正确答案自动判分(部分正确可得部分分)
判断题判断对错自动判分
填空题输入答案,多个可接受答案用英文逗号分隔自动判分
排序题将选项按正确顺序排列自动判分(部分正确可得部分分)
连线题将左右两列项目一一配对自动判分(部分正确可得部分分)
编程题在代码编辑器中编写代码需人工评分或AI辅助评分
音频题播放音频后作答(选项设置与单选题相同)自动判分
视频题观看视频后作答(选项设置与单选题相同)自动判分
简答题开放式回答需人工评分
阅读理解包含阅读材料和多个子题目子题自动/人工判分

每道题可以设置:分值、难度(简单/中等/困难)、答案解析。

1.3 批量导入题目

支持通过Excel文件批量导入题目,按模板格式填写后上传即可。


二、试卷管理

试卷是从题库中选取题目组成的考试卷。

2.1 创建试卷

  1. 进入「考试管理」→「试卷管理」
  2. 点击「新建试卷」
  3. 配置试卷参数:
参数说明
试卷标题试卷名称
关联题库从哪个题库中选题
总分试卷满分
考试时长限时(分钟)
及格分数通过分数线
随机出题每次考试随机排列题目顺序
随机选项每次考试随机排列选项顺序
考后显示答案提交后是否显示正确答案和解析
显示分数提交后是否显示得分

2.2 选题方式

  • 手动选题:从题库中逐题挑选
  • 随机抽题:按题型和数量自动从题库随机抽取,每位考生拿到的题目可能不同

三、考场管理

考场是考试的入口,关联试卷并设置考试规则。考生通过考场进入考试。

3.1 创建考场

  1. 进入「考试管理」→「考场管理」
  2. 点击「新建考场」
  3. 配置考场参数:
参数说明
考场标题考试名称
关联试卷选择使用的试卷
考试时间设置开考和结束时间(不限时则留空)
最大考试次数允许考生重考的次数
练习模式开启后不记录成绩,答题后立即判断对错,可反复练习
付费考试设置考试费用,考生需付费后才能参加
允许人员指定可参加考试的用户或用户组(不限制则所有人可参加)
安全核验开启人脸核身和随机拍照防作弊(详见第七章)
屏幕水印开启后考试页面叠加考生姓名和ID水印,防止截图泄露
考试证书及格后生成证书图片(JPG),含防伪二维码,支持自定义背景图和字体选择
竞赛模式开启后支持每题限时答题和积分排行榜(详见第十章)
通知渠道发布考场时向参考人员发送通知(邮件/短信/站内信/企业微信)

3.2 考场二维码

每个考场可生成二维码,用户扫码直接进入考试,方便线下推广和快速入场。


四、考试流程

4.1 考生参加考试

  1. 考生登录后进入「考试列表」
  2. 选择要参加的考试,点击「开始考试」
  3. 如考场开启了付费,需先完成支付
  4. 如考场开启了人脸核身,需先完成身份验证
  5. 进入答题界面,按题目顺序作答
  6. 答题过程中系统会自动保存草稿,防止意外丢失
  7. 答完后点击「提交试卷」,或考试时间到后自动交卷

答题卡导航

答题界面右侧(或顶部)显示答题卡面板,直观展示所有题目的答题状态:

状态颜色说明
未答默认灰底尚未作答的题目
已答蓝色已完成作答的题目
已标记橙色边框+角标考生标记的不确定题目

点击答题卡中的题号可快速跳转到对应题目。顶部显示已答/未答/标记的统计数字,方便考生掌握整体进度。

题目标记

每道题标题栏右侧有「🏷 标记」按钮,点击可标记该题为"不确定"。标记后:

  • 答题卡上该题号显示橙色边框和角标
  • 题目左侧边框变为橙色
  • 点击「🏷 查看标记」按钮可快速跳转到下一道标记题目
  • 点击「❓ 未答题」按钮可快速跳转到下一道未答题目
  • 提交试卷时,弹窗会提示标记题目的数量,防止遗漏

实时保存状态

答题界面顶部栏显示保存状态指示器,实时反馈答案保存情况:

状态图标说明
保存中💾 蓝色答案正在保存到服务器
已保存✅ 绿色答案已成功保存
保存失败❌ 红色保存出错,请检查网络

保存成功或失败后指示器会自动隐藏,确保不干扰答题。

编程题在线运行

编程题支持在线运行代码,考生可在提交前测试代码效果:

  1. 在代码编辑器中编写代码
  2. 可选:在「标准输入」框中输入测试数据
  3. 点击「▶ 运行代码」按钮
  4. 查看运行结果面板,包括程序输出、错误信息、运行耗时

支持的语言:Python、JavaScript、Java、C++、Go、SQL

代码运行有10秒超时限制和50000字符长度限制,仅用于调试测试,运行结果不影响最终评分。

4.2 继续未完成的考试

如果考试中途中断(如关闭浏览器),可以重新进入考试列表,点击「继续考试」恢复之前的答题进度。

4.3 练习模式

开启练习模式的考场,答题方式与正式考试不同:

  • 每次只显示一道题
  • 提交答案后立即判断对错
  • 显示正确答案和解析
  • 不记录成绩,可反复练习

4.4 查看考试结果

提交试卷后,根据试卷设置:

  • 自动判分:如果试卷只有客观题(单选/多选/判断/填空/排序/连线/音频/视频),系统立即给出分数
  • 待阅卷:如果试卷包含简答题或编程题,客观题部分立即出分,简答题和编程题需等待管理员评分后公布最终成绩
  • 根据试卷设置,可能显示或隐藏正确答案、分数等信息

五、考试记录

5.1 查看记录

管理员可在「考试管理」→「考试记录」中查看所有考生的考试情况:

信息说明
考生信息姓名、用户名
考试成绩得分、是否及格
答题详情每道题的作答情况
考试时长实际用时
核验照片人脸核身时抓拍的照片(如已开启)

5.2 人工阅卷

对于包含简答题或编程题的试卷,管理员需要进行人工阅卷:

  1. 在考试记录中找到状态为「待阅卷」的记录
  2. 查看每道主观题的考生回答
  3. 逐题打分
  4. 系统自动汇总客观题分数和主观题分数,计算总分

5.3 AI辅助阅卷

在人工阅卷界面,点击「AI辅助评分」按钮,系统会调用AI对每道主观题进行评分建议:

  • AI根据参考答案和考生回答,给出建议分数和评分理由
  • 管理员可参考AI建议,也可自行调整分数
  • 支持简答题、填空题和编程题的AI评分

5.4 导出记录

支持将考试记录导出为Excel文件,方便统计和存档。

5.5 导出PDF

支持将单条考试记录导出为PDF文件,包含考生信息、答题详情和核验照片。

5.6 考试证书

考生成绩达到及格分数后,管理员可为该考生生成考试证书,系统自动生成证书图片(JPG):

  1. 在考场设置中开启「考试通过自动发证」,可选配置证书背景图URL和证书字体
  2. 证书字体提供两种选择:小标宋(推荐,支持玥/镕/璟等异体字)和宋体(标准字体)
  3. 在考试记录中找到及格的记录,点击「生成证书」按钮
  4. 系统自动生成包含考生姓名、考试名称、成绩、日期、证书编号的证书图片
  5. 证书附带防伪二维码,扫码获取验证码,可在管理端验证真伪
  6. 考生可在移动端查看证书图片,支持保存到相册
  7. 管理端证书管理页可预览证书图片、重新生成图片

六、错题本

考生答错的题目会自动进入错题本,方便复习巩固。

  • 支持按题库、题型筛选错题
  • 可以标记「已掌握」的题目
  • 支持错题练习模式,重新作答错题

七、人脸核身与防作弊

系统提供多种防作弊机制,从身份验证到考试全程监控,全方位保障考试公平。

7.0 防作弊机制总览

机制说明适用场景
人脸核身入场验证身份,考试中定时拍照比对防止替考
切屏检测检测考生离开考试页面的行为防止搜索答案
屏幕水印在考试页面叠加考生信息水印防止截图泄露

切屏检测:考试过程中,如果考生切换到其他标签页、窗口或应用,系统会自动记录切屏行为,包括切屏次数和时间。管理员可在考试记录中查看每位考生的切屏情况。

屏幕水印:开启后,考试页面会叠加一层半透明水印,显示考生姓名和用户ID。即使考生截图或拍照,水印也会随图片一起保留,便于追溯泄露来源。

系统支持人脸核身功能,防止替考等作弊行为。需要在管理后台「系统设置」→「人脸核身」中先完成腾讯云配置。

7.1 三种核验模式

模式入场验证考试中拍照人脸比对适用场景
严格模式需人脸核身定时拍照与入场照片实时比对重要考试、资格认证
入口核验模式需人脸核身定时拍照(仅存档)不比对普通考试
仅拍照模式无需核身定时拍照(仅存档)不比对一般测验、日常考试

严格模式说明

  • 进入考试前需完成人脸核身验证身份
  • 考试过程中按设定间隔随机弹出拍照
  • 系统自动将中途拍照与入场照片进行比对
  • 比对未通过会提示考生,但不会强制交卷或中断考试
  • 管理员可在后台查看所有比对结果和相似度分数

入口核验模式说明

  • 进入考试前需完成人脸核身验证身份
  • 考试过程中仅定时拍照存档,不进行人脸比对

仅拍照模式说明

  • 进入考试前无需人脸核身
  • 考试过程中仅定时拍照存档
  • 不调用腾讯云人脸比对服务,无额外费用

7.2 核验参数配置

在考场设置中开启安全核验后,可配置:

参数说明建议值
核验间隔每隔多少秒拍照一次300秒(5分钟)
随机偏移在设定间隔上增加随机偏移,防止考生预判拍照时间建议开启

7.3 考生核验流程

根据考生使用的平台不同,核验方式自动适配:

  • 微信小程序:使用微信原生核身,体验最佳
  • 微信公众号:在微信内打开核身页面完成验证
  • 手机浏览器:跳转到核身页面完成验证
  • 电脑浏览器:弹出新窗口完成验证,通过后自动进入考试

核身通过后,有效期与考试时长一致。超时需重新核验。

7.4 查看核验记录

  1. 进入「考试管理」→「考场管理」
  2. 找到开启了安全核验的考场,点击「核验照片」
  3. 查看该考场所有考生的核验照片、比对结果、相似度分数
  4. 可批量删除核验记录

核验结果状态说明:

状态说明
通过入场核身通过,或严格模式下中途拍照比对通过
比对未通过严格模式下中途拍照与入场照片比对未通过,仅标记不中断考试
比对异常严格模式下比对服务调用失败,仅标记不中断考试
已存档入口核验模式或仅拍照模式下,照片已保存

7.5 腾讯云配置

人脸核身功能基于腾讯云服务,需要先完成以下配置:

开通腾讯云服务

  1. 登录腾讯云控制台,完成账号实名认证
  2. 开通「人脸核身」服务
  3. 获取API密钥(SecretId和SecretKey),如已配置对象存储的密钥则可共用

创建业务流程

在腾讯云人脸核身控制台中,为不同使用渠道分别创建业务流程:

渠道适用场景说明
微信小程序小程序内使用有行业资质要求,审核需3-5个工作日
微信浮层H5微信公众号内使用无行业限制,审核快,推荐
微信原生H5微信公众号内使用(原生体验)有行业资质要求,体验更好
移动端H5手机浏览器无特殊限制
PC端电脑浏览器无特殊限制

创建时选择「Plus版人脸核身」,活体检测推荐选「一闪活体」。审核通过后会获得一个业务流程编号(RuleId)。

如何选择微信H5模式? 如果您的公众号主体符合金融、政务、医疗等行业资质,推荐选「微信原生H5」,体验更好;否则选「微信浮层H5」,无行业限制,审核快。

在系统中填写配置

进入管理后台「系统设置」→「人脸核身」,填写以下信息:

配置项说明是否必填
密钥ID / 密钥Key腾讯云API密钥,留空则使用对象存储的密钥可选
默认业务流程编号通用编号,未匹配到渠道时使用推荐
小程序业务流程编号微信小程序专用小程序场景必填
公众号H5业务流程编号微信公众号专用公众号场景必填
移动端业务流程编号手机浏览器专用移动端场景必填
PC端业务流程编号电脑浏览器专用PC端场景必填
回调地址核验完成后的跳转地址,留空使用默认可选
自动回退机制:如果某个渠道没有配置对应的编号,系统会自动使用上一级的编号。例如移动端未配置,会自动使用公众号H5的编号;公众号H5也未配置,会使用默认编号。因此最少只需配置一个默认编号即可使用。

7.6 费用说明

项目适用模式大致费用
人脸核身(入场验证)严格模式 / 入口核验模式约0.8-1.5元/次
人脸比对(中途拍照比对)严格模式约0.15元/次
仅拍照模式仅拍照模式无费用
费用估算:严格模式下,一场60分钟的考试,入场核身1次 + 每5分钟拍照比对约12次,总费用约3元/人。仅拍照模式无任何费用。具体价格以腾讯云官网为准。

7.7 常见问题

微信小程序审核提示需要隐私权限怎么办?
系统已做兼容处理,未配置腾讯云参数或未开启考试开关时,人脸核验页面显示"未开启"状态,不会调用摄像头。

电脑端支持哪些浏览器?
仅支持 Chrome 87及以上 和 Firefox 45及以上 版本。

严格模式下比对未通过会怎样?
系统会提示考生"人脸比对未通过",但不会强制交卷或中断考试。管理员可在后台查看比对结果进行复核。

手机浏览器拍照能否强制使用摄像头?
不能。手机浏览器拍照时可从相册选择照片,这是浏览器的限制。如需更高安全性,建议使用微信小程序。

只配置了一个业务流程编号,其他渠道能用吗?
可以。系统有自动回退机制,未配置的渠道会自动使用上一级的编号。


八、AI智能功能

系统集成了多种AI功能,帮助提高出题和教学效率。需要在管理后台「系统设置」→「AI配置」中先配置AI服务的密钥和模型。

8.1 AI智能出题

利用AI根据知识点自动生成题目,大幅提高出题效率。

使用方法

  1. 进入题库管理,点击「AI出题」
  2. 选择题目要添加到的题库
  3. 配置生成参数:
参数说明
题型选择要生成的题型(单选/多选/判断/填空/简答/排序/连线/编程)
难度简单/中等/困难
数量一次生成的题目数量
主题/知识点输入题目涉及的知识领域,如"中国近代史"、"Python基础语法"
  1. 点击「开始生成」,AI异步生成题目
  2. 生成完成后预览题目,可逐题编辑修改
  3. 确认后批量添加到题库
单选题和多选题自动生成4个选项,每道题自动生成答案解析,默认每题2分,可后续修改。

8.2 AI文档解析出题

从文档文本中自动识别和提取题目,适合将纸质试卷快速数字化。

使用方法

  1. 进入题库管理,点击「AI解析文档」
  2. 将文档文本粘贴到输入框(最多8000字)
  3. 点击「开始解析」
  4. AI自动识别文档中的题目,提取为结构化数据
  5. 预览识别结果,确认后添加到题库

AI可以自动识别题目类型、提取题目内容和选项、提取正确答案和解析、判断题目难度。

8.3 AI智能组卷

AI根据要求从题库中自动选题,生成推荐试卷方案。

使用方法

  1. 进入试卷管理,点击「AI智能组卷」
  2. 配置组卷参数:
参数说明默认值
试卷标题试卷名称-
所属题库从哪个题库选题-
总分试卷总分100
考试时长考试限时(分钟)60
及格分数通过分数线60
难度比例简单:中等:困难的比例3:5:2
  1. 点击「开始AI组卷」
  2. 查看AI生成的组卷方案,包括组卷思路、题目配置和题目预览
  3. 确认方案后点击「确认创建」,系统自动创建试卷
AI组卷方案仅供参考,创建后仍可手动调整。建议题库中至少有50道以上题目,AI组卷效果更好。

8.4 AI智能分析

考试完成后,AI可以对每道错题进行智能分析,帮助考生理解错误原因。

使用方法

  1. 在考试记录详情页,点击题目旁的「AI分析」按钮
  2. AI异步分析该题目
  3. 查看分析结果,包括:答案解析、考查知识点、易错点、学习建议

九、成绩分析报表

管理员可以对考场成绩进行多维度统计分析,全面了解考试情况和教学效果。

9.1 基本概览

在「考试管理」→「考场管理」中,点击考场的「统计分析」按钮,进入成绩分析页面。基本概览包含:

指标说明
参考人数实际参加考试的人数
平均分所有考生成绩的平均值
最高分 / 最低分成绩范围
及格率达到及格分数的考生占比
中位数排名中间位置的考生分数
分数分布各分数段的人数分布图

9.2 题目分析

题目分析帮助管理员评估每道题的质量和难度:

指标说明
答对率答对该题的考生占比
平均得分所有考生在该题的平均得分
区分度衡量题目区分高低分考生能力(0~1之间)
高分组答对率成绩前27%的考生对该题的答对率
低分组答对率成绩后27%的考生对该题的答对率

区分度等级判定

区分度等级说明
≥ 0.4题目能很好地区分高低分考生
0.3 ~ 0.4题目区分能力较好
0.2 ~ 0.3题目区分能力一般,可考虑修改
< 0.2题目几乎无法区分考生水平,建议删除或重写

9.3 知识点掌握率

按题目标签(知识点)统计考生的掌握情况:

指标说明
掌握率该知识点所有题目的综合答对率
题目数量属于该知识点的题目数
答对数量考生在该知识点答对的题目总数
平均得分该知识点的平均得分

掌握率等级判定

掌握率等级建议
≥ 80%掌握考生整体掌握良好
60% ~ 80%基本掌握可适当加强练习
40% ~ 60%薄弱需重点讲解和练习
< 40%很差需重新学习该知识点

9.4 用户组对比

按用户所属组(如部门、班级)对比不同群体的考试表现:

指标说明
平均分该组所有考生的平均成绩
及格率该组达到及格分数的考生占比
中位数该组排名中间位置的考生分数
最高分 / 最低分该组的成绩范围

用户组对比以柱状图和表格形式展示,方便管理员发现不同群体间的差距,针对性地改进教学或培训方案。

9.5 实时监控大屏

实时监控大屏为管理员提供考试进行中的全局视角,实时掌握考场动态。

进入方式:在「考试管理」→「考场管理」中,点击考场的「实时监控」按钮。

监控指标

指标说明
总考生数考场中的总考生人数
在线人数当前正在答题的考生数
已交卷已提交试卷的考生数
作弊预警触发作弊告警的考生数
平均进度所有在线考生的平均答题进度

功能特性

  • 深色主题大屏界面,适合投屏展示
  • 进度分布条:直观展示各进度区间的考生人数
  • 考生详情表格:显示每位考生的用户名、姓名、状态、答题进度、剩余时间、作弊告警次数
  • 状态筛选:支持按"全部/在线/已交卷/未开始"筛选考生
  • 自动刷新:每10秒自动更新数据,也可手动刷新

9.6 按题批量阅卷与评分量规

按题批量阅卷让阅卷人聚焦于同一道题的所有考生答案,配合评分量规实现标准化评分,提高阅卷效率和一致性。

进入方式:在「考试管理」侧边栏中点击「批量阅卷」。

使用流程

  1. 选择考场:从下拉列表中选择需要阅卷的考场
  2. 选择题目:系统自动筛选出需要人工阅卷的题目(简答题、编程题等)
  3. 逐个评分:查看每位考生的答案,输入评分
  4. 批量保存:完成评分后点击「批量保存」,一次性提交所有评分

评分量规

评分量规是预设的评分标准,帮助阅卷人保持评分一致性。在题目编辑页面可添加评分量规:

量规字段说明
分值该档对应的得分
描述该档的评分标准描述

快捷评分

  • 满分:一键填入该题满分
  • 零分:一键填入0分
  • 量规评分:点击量规条目,自动填入对应分值
评分量规建议在出题时同步设置,阅卷时可直接参考,减少主观偏差。

十、考试排行榜与竞赛模式

10.1 考试排行榜

排行榜展示考场中所有考生的成绩排名,支持两种排名方式:

按分数排名:按考试成绩从高到低排列,分数相同则用时短者排前。

按积分排名(竞赛模式):综合考虑正确率和答题速度,积分计算公式为:

积分 = 正确率 × 70 + 用时奖励 × 30

其中用时奖励根据考生的相对用时计算,用时越短奖励越高。

查看排行榜

  1. 在考试中心点击「排行榜」按钮
  2. 选择要查看的考试
  3. 切换"按分数"或"按积分"排名方式
  4. 查看前三名展示和完整排名列表

匿名模式:管理员可开启匿名显示,排行榜中只显示排名和成绩,不显示考生姓名。

我的排名:考生可在排行榜页面查看自己的排名、分数和积分。

10.2 竞赛模式

竞赛模式适合知识竞赛、闯关答题等场景,与普通考试相比有以下特点:

特性普通考试竞赛模式
答题方式自由浏览所有题目每题限时,超时自动跳下一题
排名方式按分数排名按积分排名(含用时奖励)
考后展示成绩和解析成绩 + 排行榜入口

开启竞赛模式

  1. 在创建或编辑考场时,勾选「启用竞赛模式」
  2. 设置「每题限时」(秒),0表示不限时
  3. 勾选「考后显示排行榜」,考生提交后可直接查看排行榜

竞赛答题流程

  1. 考生进入考试后,页面顶部显示总倒计时和当前题目倒计时
  2. 当前题目倒计时归零后,自动跳转到下一题
  3. 已跳过的题目无法返回修改
  4. 提交试卷后,显示成绩和「查看排行榜」按钮
提示:竞赛模式下建议设置较短的考试时长和每题限时(如30~60秒),营造紧张刺激的竞赛氛围。

十、霸屏模式(防作弊)

霸屏模式是一种强化的防作弊机制,可防止考生切屏、复制粘贴、退出全屏等行为,超过告警阈值自动强制交卷。

10.1 开启霸屏模式

  1. 在创建或编辑考场时,勾选「启用霸屏模式」
  2. 选择「霸屏级别」:
  3. 设置「作弊告警阈值」(默认3次),考生违规操作超过此次数将自动强制交卷

10.2 支持的告警类型

告警类型说明
fullscreen_exit考生退出全屏模式
visibility_change页面不可见(切屏/切换应用)
window_blur窗口失去焦点
copy_attempt尝试复制内容
paste_attempt尝试粘贴内容
right_click右键点击
devtools_open打开开发者工具
multi_monitor检测到多显示器

10.3 霸屏模式工作流程

  1. 考生进入考试后,页面自动请求全屏
  2. 考生退出全屏时,自动记录告警并重新进入全屏
  3. 切屏、复制粘贴等操作实时上报后端
  4. 告警次数达到阈值时,后端自动强制提交试卷
  5. 管理员可在后台查看作弊告警列表

10.4 相关API

接口方法说明
/v1/exam/cheat-reportPOST前端上报作弊行为
/v1/exam/kiosk-configPOST获取霸屏模式配置
/v1/exam/cheat-warningsPOST管理端查看作弊告警列表

十一、协同阅卷

协同阅卷支持多阅卷人并行评分,提供双评机制和评分仲裁,确保主观题评分的公平性和准确性。

11.1 创建阅卷分配

  1. 考试结束后,进入考试记录管理页面
  2. 对含主观题的考场创建阅卷分配
  3. 配置分配参数:

11.2 分配策略说明

策略说明
random随机将阅卷任务分配给阅卷人
balanced按阅卷人当前负载均衡分配,任务量更均匀
by_question同一题目固定由同一阅卷人评分,保证评分标准一致

11.3 双评与仲裁流程

  1. 单评模式(reviewsPerQ=1):每道主观题由1人评分,评分后直接计入成绩
  2. 双评模式(reviewsPerQ=2):每道主观题由2人独立评分
  3. 仲裁:管理员对争议题目给出最终裁定分数

11.4 阅卷工作流程

  1. 管理员创建阅卷分配,系统自动按策略分配任务
  2. 阅卷人登录后查看「我的阅卷任务」,逐题评分
  3. 所有任务完成后,系统自动汇总计算最终分数
  4. 争议题目由管理员仲裁评分

11.5 相关API

接口方法说明
/v1/exam/grading/create-assignmentPOST创建阅卷分配
/v1/exam/grading/my-tasksPOST我的阅卷任务列表
/v1/exam/grading/grade-taskPOST阅卷人评分
/v1/exam/grading/progressPOST阅卷进度统计
/v1/exam/grading/reconcilePOST争议题目列表(需仲裁)
/v1/exam/grading/reconcile-gradePOST管理员仲裁评分

十二、服务器安全防护

系统内置安全防护模块,保护服务器免受 WebShell 入侵、恶意 IP 攻击和文件篡改等威胁。无需额外部署,配置即生效。

12.1 启用安全防护

config.yaml 中配置安全防护参数:

security:
    enabled: true              # 总开关,设为 true 启用安全防护
    watch_paths: []            # 监控目录,留空自动使用当前平台默认路径
    ignore_paths: []           # 忽略目录,留空自动使用当前平台默认路径
    auto_block: true           # 发现威胁时自动隔离文件
    auto_ip_block: true        # 自动封禁恶意 IP
    block_duration: 3600       # IP 封禁时长(秒),默认1小时
    quarantine_dir: ''         # 隔离文件存放目录,留空自动使用默认路径
    alert_webhook: ''          # 告警推送 Webhook URL(如企业微信机器人)
    scan_schedule: '0 3 * * *' # 定时扫描 Cron 表达式,默认每天凌晨3点
    nginx_log_path: ''         # Nginx 日志路径,留空自动检测
    enable_file_watch: true    # 文件实时监控开关
    enable_scan: true          # 定时扫描开关
    enable_alert: true         # 告警推送开关
    enable_ip_block: true      # IP 自动封禁开关

修改配置后需重启系统生效。

12.2 跨平台默认路径

配置中路径留空时,系统自动根据当前操作系统选择默认值:

配置项LinuxWindowsmacOS
监控目录/www/wwwrootC:\phpstudy_pro\WWWC:\xampp\htdocs/usr/local/var/www
忽略目录*/runtime*/storage/logs*/runtime*/storage/logs*/runtime*/storage/logs
隔离目录/www/security/quarantine~/security/quarantine~/security/quarantine
Nginx日志/www/wwwlogs自动检测/usr/local/var/log/nginx
IP封禁方式iptablesnetsh advfirewall仅记录数据库
系统启动时会自动过滤不存在的监控目录,避免监控无效路径报错。

12.3 子功能开关

安全防护包含4个子功能,可独立启停,灵活适配不同场景:

开关配置项说明适用场景
文件实时监控enable_file_watch监控 Web 目录文件的新增/修改/删除所有环境
定时扫描enable_scan按 Cron 表达式定时全量扫描 WebShell所有环境
告警推送enable_alert发现威胁时推送 Webhook 告警需要即时通知的场景
IP 自动封禁enable_ip_block自动识别并封禁恶意 IP有公网访问的环境

典型配置示例

仅扫描不封禁(开发环境推荐):

security:
    enabled: true
    enable_file_watch: true
    enable_scan: true
    enable_alert: true
    enable_ip_block: false

仅监控不扫描(低负载场景):

security:
    enabled: true
    enable_file_watch: true
    enable_scan: false
    enable_alert: true
    enable_ip_block: false

12.4 WebShell 检测规则

系统内置 34 条 WebShell 检测规则,覆盖以下威胁类型:

规则类别覆盖内容严重级别
一句话木马eval($_POST)assert($_GET) 等经典一句话严重
编码绕过Base64解码、gzinflate、str_rot13 等编码混淆严重/高危
经典 ShellC99 Shell、R57 Shell、PHP Spy、Mini Shell、Weevely严重/高危
回调后门array_mappreg_replace_callbackcall_user_func高危
反序列化利用unserialize + 用户输入组合严重
环境操控putenv(LD_PRELOAD)ini_set(disable_functions)严重
文件操作后门proc_open、远程文件下载写入严重/高危
.htaccess 注入php_valueauto_prepend_file严重
隐藏管理面板b374k、FilesMan、AlfaNum 等特征严重

12.5 管理页面

启用安全防护后,在管理后台「安全防护」页面可查看和管理:

概览 Tab

  • 安全守护运行状态和平台信息
  • 子功能开关状态(文件监控/定时扫描/告警推送/IP封禁)
  • 待处理事件、活跃封禁 IP、隔离文件数统计
  • 最近7天威胁分布(严重/高危/中危/低危)
  • 最近安全事件列表
  • 手动触发即时扫描

安全事件 Tab

  • 查看所有安全事件,支持按状态/严重级别/类型筛选
  • 处理事件(确认威胁并采取行动)
  • 忽略事件(标记为误报)

IP 黑名单 Tab

  • 查看已封禁 IP 列表,支持按活跃状态筛选
  • 手动封禁 IP(填写 IP 地址和封禁原因)
  • 手动解封 IP

隔离文件 Tab

  • 查看被隔离的可疑文件列表
  • 恢复误隔离的文件(将文件从隔离区移回原路径)

12.6 告警推送

配置 alert_webhook 后,系统发现安全威胁时会自动推送告警消息。支持标准 Webhook 格式(兼容企业微信、钉钉、飞书等)。

推送内容包括:

  • 事件类型(WebShell 检测 / 文件变更 / 恶意 IP)
  • 严重级别
  • 文件路径或 IP 地址
  • 检测规则名称和描述
  • 时间戳

12.7 Windows 系统注意事项

在 Windows 系统上使用安全防护时需注意:

  • IP 封禁使用 Windows 防火墙(netsh advfirewall),需要管理员权限运行
  • 防火墙规则名格式为 SecurityGuard_Block_{IP},可在「高级安全 Windows 防火墙」中查看
  • 文件监控自动忽略 C:\WindowsC:\Program Files、临时目录等系统路径
  • 如使用 XAMPP、PhpStudy 等集成环境,系统自动监控其 Web 根目录
  • 解封 IP 时系统自动删除对应的防火墙规则

十三、单元测试

项目包含完整的单元测试和集成测试,覆盖核心业务逻辑和 API 接口。

13.1 运行测试

# 运行全部测试
go test ./... -count=1

# 运行指定包的测试(详细输出)
go test ./configs/... -v -count=1
go test ./controllers/... -v -count=1

# 运行指定测试函数
go test ./controllers/... -v -run "TestAPI_FullExamFlow" -count=1

13.2 测试文件说明

测试文件测试内容
configs/utils_test.go工具函数:密码加密、手机号/邮箱验证、ID编解码、模块权限
configs/model_test.go模型方法:用户角色判断、自定义角色权限、订单状态、分类树
controllers/exam_utils_test.go考试核心逻辑:答案标准化(多选/填空/排序)、判断题判分、连线题解析、题目去答案、证书生成
controllers/user_auth_test.goJWT认证:Token生成/解析/过期检测、用户过期判断、上下文取用户
controllers/api_test.goAPI集成测试:使用SQLite内存数据库,覆盖分类/题库/题目/试卷/考场/考试/用户/角色等全部接口
controllers/exam_kiosk_grading_test.go霸屏模式和协同阅卷测试:作弊告警上报、强制提交、阅卷分配、评分、仲裁

13.3 测试架构

  • 单元测试:直接调用内部函数,无需数据库,运行速度快
  • 集成测试:使用 SQLite 内存数据库(纯Go实现,无需CGO),通过 TestMain 初始化测试环境和路由,模拟HTTP请求验证完整API流程
  • 完整流程测试TestAPI_FullExamFlow 模拟从创建分类→题库→题目→试卷→考场→开始考试→查看记录的完整考试流程

温馨提示

知识产权声明:本软件已获国家版权局软件著作权登记(登记号:2022SR0558725),受《计算机软件保护条例》保护。未经书面授权,严禁对本软件进行反向工程、反编译、破解或任何形式的篡改。侵权必究。

官方指引:本文档为官方安装部署说明,仅适用于当前发布版本,后续版本请以最新官方文档为准。

环境要求:安装前请确认操作系统版本、运行环境(如 .NET、Java 等)及硬件配置满足软件运行要求,避免因环境不兼容导致异常。

操作风险与免责:安装配置涉及防火墙、注册表或环境变量等系统级变更,建议由具备相关经验的技术人员操作。因用户未严格遵循本官方指引或操作不当导致的任何数据丢失、系统异常或其他损失,我方不承担相关责任。如遇问题,请及时联系技术支持。

反馈渠道:如有未覆盖的问题,欢迎通过客服反馈,我们将持续更新与改进。

版本记录:最后更新于 2026-08-07

AI

智能问答助手

基于本手册内容回答问题
AI
你好,我是本手册的 AI 助手,有任何安装问题可以直接问我。
← 返回手册列表

相关手册