作者wt (Time to Change!)
看板Soft_Job
标题Re: [请益] 确保在刚好5分钟不差作答网页测验
时间Sun Jan 29 20:31:41 2023
看起来目的是要考试防弊,选择的方法是透过timestamp。
只透过timestamp会有很多问题/漏洞。原文提到的就是其中一个。
还要配合其他前端手法一起处理。
真正问题应该是规格需求不够明确,要重新回头思考要解决的问题与情境。
- 线上测验的(同时)使用者数量
影响设计方法,全靠後端,量一大後端也要撑得住。
通常是前、後端都做部分工作。
- 测验的严谨程度 (自我评量/一般考试/国家考试)
防弊程度
恶意的篡改 / 造假 / replay 都要处理
- 使用场景 (各种电脑手机上 / 指定考场电脑上)
在指定场合电脑上,一般人没机会/没时间窜改前端 ex: 多益考场
不同场景就可以有不同解法
把实际场景考虑进去,才有办法做出合适设计。
基本上业界应该都有答案,金融业跟各种线上考试的都遇过这些问题。
Google到对的关键字应该就有答案了
※ 引述《freebug (Freebug)》之铭言:
: 我最近在开发一个「线上测验」的网页
: 前端配合後端PHP
: 线上测验的系统要刚好在5分钟让使用者作答
: 不能提早交卷也不能迟交
: 虽然我可以用前端的JavaScript 计时器计时
: 不过这样只能防君子不能防小人
: 不法人士还是可以透过开发者工具伪造请求绕过网页的计时器
: 所以这问题势必要用後端来解决
: 我起初的想法是在後端开始出题时先用session记录当时的timestamp
: 然後之後当伺服器後端接收到任一请求时,检查收到时的timestamp跟当初session记录的
: timestamp相减是否刚好为5分钟
: 不过这样又会有另外一个问题
: 因为网路传递请求一定会有延迟
: 而每次的延迟时间都不同(也会根据使用者网路情况有所差异)
: 所以不管前端後端好像都无解?
: 各位有什麽想法吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.230.211.119 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1674995504.A.73E.html
※ 编辑: wt (61.230.211.119 台湾), 01/29/2023 20:51:21
1F:推 luke72: 所有的严谨考试都是要进考场的,能线上考的都不用太复杂 01/29 21:02
2F:→ luke72: AWS认证考试可以线上,但要全程摄影机直播 01/29 21:03
3F:→ luke72: 而且认证考试也不是什麽大考 01/29 21:04
4F:嘘 B0988698088: 听君一席话 01/30 09:52
5F:→ knives: 根本不需要管前端好嘛 01/30 10:35
6F:→ vi000246: 要看考什麽吧 如果google就搜得到解答才有防弊的必要 01/30 12:13
7F:嘘 eateat33: 如听一席话 01/31 17:18
8F:嘘 bob860115: 确实 01/31 21:37
9F:推 Belieeve: 疫情期间美国升学大考几乎都有推出线上考,但都会与额外 02/04 11:42
10F:→ Belieeve: 的监测系统配合 02/04 11:42