更新日志
← 返回登录页本次更新为问题修复,针对屏幕共享功能在实战测试中发现的若干问题进行了集中修正,确保监考流程顺畅可靠。
🔧 修复内容
弹窗交互优化
屏幕共享授权弹窗的按钮已改为"允许"和"退出"两个明确选项,去掉了"稍后再说"等可绕过选项。点击"允许"启动屏幕共享,点击"退出"则返回考试列表,行为更加清晰明确。
启动过程失焦误判修复
修复了点击"允许"后系统弹出屏幕选择对话框时,浏览器焦点切换被错误判定为违规失焦的问题。现在系统会在屏幕共享启动过程中自动暂停失焦检测,完成后自动恢复,确保正常操作不会被误判。
实时观看黑屏修复
修复了监考端实时观看页面始终显示黑屏的问题。根本原因是数据传输过程中的类型标识不匹配导致数据未被正确接收,现已修正传输层处理。同时将视频播放方式重构为更可靠的方案,确保在电脑端和手机端均可正常显示考生屏幕画面。
停止信号修复
修复了考生退出考试或关闭页面后,监考端仍显示"正在共享"的问题。原因是停止信号的数据格式无法被服务器正确解析,导致会话未能及时清除。现已修正信号发送方式,确保考生退出后监考端立即更新状态。
浏览器兼容性增强
修复了部分浏览器无法弹出屏幕共享弹窗的问题。现在即使在不支持的浏览器上也会显示授权弹窗并提供明确提示,引导考生切换到支持的浏览器(Chrome、Edge、Firefox)。同时优化了启动失败时的错误信息,针对拒绝授权、未选择屏幕、操作取消等不同情况给出区分提示。
监考面板状态显示修正
修复了已分配但尚未进入答题的考生在监考面板中显示为"答题中"的问题。现在会正确区分三种状态:未答题(尚未开始)、答题中(正在进行)、已提交(已完成),状态一目了然。
录像回放按钮修正
修复了监考面板中录像回放按钮指向未完成录像导致无法播放的问题。现在回放按钮仅在录像完整保存后才显示,确保每次点击都能正常观看。
✅ 验证确认
- 录像文件真实存储在服务器硬盘
/recordings目录下,格式为 WebM - 管理员和阅卷人均可通过后台"屏幕监考"页面查看实时画面和回放录像
- 实时观看功能已在电脑端和手机端验证可用
- 考生退出后监考端状态同步更新,不再残留"正在共享"
- 不支持屏幕共享的浏览器会显示提示引导切换
- 监考面板状态显示正确区分未答题/答题中/已提交
- 三级角色(管理员、阅卷人、考生)权限隔离正常,各页面鉴权正确
如在使用中发现任何问题,请及时反馈。
本次更新为重要功能更新,新增屏幕共享实时监考功能,管理员和阅卷人可在后台实时观看考生屏幕画面,考试结束后可回放完整录像,进一步加强考试纪律保障。所有录像文件保存在服务器本地,方便事后核查。
🖥 屏幕共享监考
考生端屏幕共享
严格考试模式下,考生进入考试页面后将收到屏幕共享授权弹窗,系统会明确告知考生:屏幕画面将被录制并保存至服务器,监考人员可实时查看。考生需点击确认后,通过浏览器原生接口选择整个屏幕进行共享。如考生选择"稍后再说",弹窗将在3分钟后再次提醒。
监考端实时观看
管理员和阅卷人可在后台"屏幕监考"面板中查看所有正在考试中的考生列表,通过状态指示灯一目了然地看到哪些考生正在共享屏幕。点击"实时观看"即可进入监看页面,以近实时(约2-5秒延迟)的方式查看考生屏幕画面。
录像自动保存与回放
整个考试过程的屏幕画面会被自动录制并保存为视频文件存储在服务器上。考试结束后,管理员和阅卷人可在监考面板的"历史录像"列表中查找并回放任意考生的完整考试录像,也可将录像文件下载到本地存档。
权限分级管理
管理员拥有最高权限,可查看所有考生的屏幕和回放所有录像;阅卷人仅可查看被分配给自己批阅的考生的屏幕和录像。考生无任何监考查看权限,仅作为被监考方参与屏幕共享。
🔧 技术特性
- 采用浏览器原生屏幕捕获接口,无需安装任何客户端软件或浏览器插件
- 视频编码采用高效压缩算法,在保证画面清晰可读的前提下尽可能降低网络带宽占用
- 录像文件采用通用WebM格式,支持主流浏览器和播放器直接打开
- 服务端采用内存缓存+定时落盘机制,同时兼顾性能和数据安全
- 长时间无新数据时自动结束录像并保存,防止异常断开导致数据丢失
⚠️ 使用提示
- 屏幕共享功能依赖浏览器原生API,推荐使用Chrome、Edge 或 Firefox 最新版本
- 考生必须选择整个屏幕进行共享,如果仅选择单个标签页或窗口,监考画面可能不完整
- 如果考生拒绝或关闭屏幕共享,系统会定期再次提醒,但不会强制阻止考生继续答题
- 录像文件存储在服务器
/recordings目录下,建议定期清理旧录像以释放磁盘空间 - 管理员可在后台仪表盘"快捷操作"区域找到"屏幕监考"入口
屏幕共享功能为可选增强措施,建议在重要考试或对纪律要求较高的场景下启用严格安全模式以获得最佳效果。
本次更新为重要安全更新,针对近期发现的部分考生尝试通过浏览器调试工具、修改前端代码等技术手段进行作弊的情况,我们对考试系统的前端安全防护进行了全面升级。本次更新不影响任何正常答题功能,仅大幅提高了通过技术手段作弊的门槛,切实维护考试的公平公正。
🛡️ 本次安全更新主要内容
前端代码深度保护
对答题页面的核心JavaScript代码进行了工业级高强度混淆处理,采用多层混淆策略组合:代码逻辑结构打散重组、所有标识符重命名为无意义名称、文本内容加密存储、代码完整性自校验等。经过混淆后的代码即使被下载也几乎无法阅读和理解,从根本上提高了逆向工程和代码篡改的难度。
反调试与反篡改增强
新增多层反调试保护机制,能够从多个维度检测开发者工具和调试器的使用行为,一旦检测到调试环境会主动干扰调试过程,防止作弊者通过断点、单步执行、控制台注入等方式查看或修改代码运行逻辑,避免计时器、提交锁定、违规计数等核心安全机制被绕过。
操作行为限制强化
在严格考试模式下,进一步加强了对页面操作的限制:右键菜单被完全拦截、页面内容无法随意选中复制、图片和链接无法拖拽保存、页面保存和打印功能受限。特别增加了安全事件自恢复机制,即使作弊者尝试通过技术手段移除事件拦截,系统也会自动快速恢复防护,简单的绕过方法将不再有效。
危险快捷键全面拦截
扩展了可能被用于作弊的键盘快捷键拦截范围,防止通过各种键盘组合键打开浏览器开发者工具、查看页面源代码、保存网页到本地、打印页面等违规操作。答题编辑区域完全不受影响,考生可以正常输入文字、编辑答案、使用复制粘贴等功能,不会影响正常答题体验。
代码自我校验机制
核心功能模块内置了完整性校验能力,系统运行过程中会定期检测关键代码是否被恶意篡改。如果检测到代码被修改(比如通过控制台注入脚本篡改提交逻辑、修改计时器时长、清除违规记录等),系统能够识别并记录异常行为,防止被篡改的代码继续运行。
反打印与内容导出防护
增加了页面打印和内容导出的防护措施,尝试通过浏览器打印功能将试卷内容导出为PDF或纸质文件时,页面内容会被隐藏并显示警告信息,防止考生通过打印方式窃取或传播试题内容。
✅ 正常使用不受影响
本次安全更新对正常答题完全没有影响:
- 答题区域的文字输入、编辑、复制、粘贴功能完全正常
- 计时器、全屏模式、水印、失焦检测等原有功能保持不变
- 答题板拖拽、大小调节、折叠展开等交互操作流畅无卡顿
- 文件上传、答案自动保存、试卷提交等功能正常使用
- 管理员后台、阅卷人界面不受本次更新影响
⚠️ 重要说明
请各位考生注意:
- 前端安全措施仅能提高技术作弊的门槛,无法阻止使用手机拍照、使用第二台设备搜题、他人替考等物理方式作弊
- 考试期间请严格遵守考试纪律,独立完成答卷
- 系统会全程记录违规行为(包括失焦、尝试使用调试工具、尝试右键等),违规次数过多将按考试规则处理
- 建议考试前重启浏览器并关闭无关页面,避免因快捷键冲突或其他软件弹窗导致误触发违规检测
- 如遇系统问题请及时联系监考老师,不要尝试自行调试或刷新页面
本次更新旨在营造公平公正的考试环境,感谢各位考生的理解与配合。祝各位考生考试顺利!
本次更新将更新日志数据文件化,并重写了数据库导入功能,大幅提升旧数据兼容性:
- 更新日志文件化:更新日志数据从硬编码迁移到 data/changelogs/changelogs.json 文件,方便手动编辑维护
- 启动自动同步:应用启动时自动从 JSON 文件同步更新日志到数据库,按版本号判断是否新增,已存在的不覆盖
- 修复数据库导入:完全重写导入逻辑,旧版本数据库缺表缺列都能正常导入,不会报错
- 列名匹配导入:导入时按列名匹配,只导入两边都有的列,缺失列自动填充默认值
- 保留新表数据:旧数据库没有的表(如 changelogs),导入时跳过不删除,保留当前数据
- 导入后自动迁移:导入完成后自动迁移 users 表为 username+role 联合唯一,自动同步更新日志,自动补齐 site_config
- 导入结果详情:导入结果显示每张表导入行数、跳过列数、跳过的表名,一目了然
- 用户列表优化:用户列表 ID 列改为显示序号(1,2,3...),删除用户后序号自动连续
- 清理代码:移除 db.js 中硬编码的 defaultChangelogs 数组,代码更简洁
本次更新修复了用户系统的多项问题,支持不同角色使用相同用户名:
- 用户名+角色联合唯一:用户表唯一约束从 username 单独唯一改为 (username, role) 联合唯一,允许不同角色使用相同账号名
- 修复数据库迁移:修复旧版用户表迁移时缺少列导致迁移失败的问题,自动保留所有现有列(failed_attempts、locked_until、group_name 等)
- 编辑用户冲突检测:编辑用户时增加唯一性校验,防止修改后与其他同角色用户重名
- 管理员后台入口:管理员侧边栏新增"更新日志管理"快捷入口
- 更新日志优化:发布时间精确到分钟,按发布时间倒序排列,取消新标签页打开
- 返回按钮:未登录访问更新日志时,页面顶部显示"返回登录页"按钮
本次更新为大型版本更新,界面全面重构,采用 Apple 风格辉光UI与流畅动画:
- 苹果辉光UI:全站界面全面升级为 Apple 风格液态玻璃设计,背景动态辉光效
- 动态光球背景:登录页及各控制台页面增加动态光球渐变背景
- 玻璃态卡片:所有卡片采用毛玻璃质感,边框高光折射效果
- 流畅动画:全面引入 Apple 风格缓动动画,页面切换、按钮交互丝滑过渡
- 渐变按钮:主按钮采用渐变蓝紫配色,悬停上浮发光效果
- 侧边导航:侧边栏全面重构,玻璃态导航项,选中态高亮发光
- 登录页:登录页全新设计,渐变背景 + 玻璃登录卡片
- 修复逻辑:修复部分表单验证逻辑与数据校验问题
- 优化性能:优化页面加载与渲染性能,响应更迅速
本次更新优化了答题板界面与交互体验,修复多个已知问题:
- 苹果风答题板:答题页面全面升级为 Apple 风格设计,更简洁优雅
- 浮动工具栏:优化浮动工具栏采用玻璃态设计,支持拖拽更流畅
- 题目导航:侧边题目导航面板重构,状态标识更清晰
- 修复答案同步:修复部分场景下答案保存不同步的问题
- 修复计时偏差:修复计时器显示偏差与暂停异常问题
- 修复提交逻辑:优化交卷逻辑,修复空卷检测,防止误提交
本次更新新增了公开可见的更新日志功能,提升系统透明度:
- 公开更新日志页面:访问 /changelog 即可查看所有版本更新历史,无需登录
- 类型筛选:支持按新功能、优化改进、Bug修复、安全更新、其他5种类型筛选
- 版本号搜索:支持按版本号关键词快速搜索
- 管理员后台管理:管理员可在后台新增、编辑、删除更新日志条目
- 多入口导航:登录页、各角色侧边栏底部均设有更新日志入口,新标签页打开
- Liquid Glass 设计:完全遵循液态玻璃UI设计风格,玻璃卡片、渐变动画、响应式布局
本次更新修复了所有 HTML 内容转义显示异常的问题:
- 修复公告弹窗显示HTML标签的问题:将 header.ejs 中的公告内容输出从 <%= %> 改为 <%- %>,确保 HTML 标签正常渲染
- 修复考生答案富文本失效的问题:在阅卷人、考生、管理员三个提交答案查看页面,将 content_html 输出改为非转义输出
- 修复页脚HTML显示问题:footer.ejs 中 site_footer 内容改为非转义输出
- 统一输出规范:所有富文本/HTML内容使用 <%- %> 非转义输出,所有纯文本数据使用 <%= %> 转义输出
本次更新修复了多项功能异常问题:
- 修复计时器显示为0的问题:修复 exam.duration_minutes 为 null 时导致计时时长计算为0的问题,增加数值校验和默认值兜底(默认120分钟),并在 startTimer 中重置开始时间为当前时间
- 修复全屏按钮无效的问题:修复 restoreFloatState 方法中 self 未定义导致 JS 执行中断的问题,改为使用 ExamApp._on 显式调用,确保安全事件正常绑定
- 修复失焦检测失效的问题:同 JS 执行中断问题修复,visibilitychange 和 blur 事件恢复正常监听
- EJS 模板优化:durationMinutes 和 alreadySubmitted 参数使用 safeJSON() 包裹,确保 JavaScript 语法正确
怕酱服务器 O3 预备管理员等级招生考试系统正式上线!
- 支持考生在线答题
- 支持阅卷人在线批阅
- 支持管理员全程管理
- 支持安全模式(全屏、失焦检测、防作弊)
- 支持富文本题目和答案