PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
PHP
[请益] 如何确保使用者确实在刚好5分钟作答
楼主:
freebug
(Freebug)
2023-01-28 20:32:17
我最近在开发一个“线上测验”的网页
前端配合后端PHP
线上测验的系统要刚好在5分钟让使用者作答
不能提早交卷也不能迟交
虽然我可以用前端的JavaScript 计时器计时
不过这样只能防君子不能防小人
不法人士还是可以透过开发者工具伪造请求绕过网页的计时器
所以这问题势必要用后端来解决
我起初的想法是在后端开始出题时先用session记录当时的timestamp
然后之后当服务器后端接收到任一请求时,检查收到时的timestamp跟当初session记录的
timestamp相减是否刚好为5分钟
不过这样又会有另外一个问题
因为网络传递请求一定会有延迟
而每次的延迟时间都不同(也会根据使用者网络情况有所差异)
所以不管前端后端好像都无解?
各位有什么想法吗?
作者:
bency
(æž—ç西)
2023-01-28 21:33:00
把时间存在 db 勒?
作者:
LPH66
(-6.2598534e+18f)
2023-01-28 23:31:00
我会觉得你这个前后端都要做, 前端做为正好 5 分钟的接口后端 PHP 则检查是否时间正确不过网络延迟这个无解, 你只能容许某个程度的误差(例如容许超过半秒到一秒等)
作者:
Isaea
(Isaea)
2023-02-06 22:40:00
开始测验先存时间结束在判断?
作者:
okgogogo
( )
2023-02-09 13:35:00
以前学校的是个程式,锁死还不能跳出程式,避免你上网查
作者: keoy7am (keoy7am)
2023-02-21 01:04:00
永远不能相信前端,必须后端解决,以下思路供参考。推荐使用websocket. OnConnected时enqueue 到答卷列表中(如测试id 、userId、时间戳等),是否透过websocket执行交卷逻辑或仅做计时服务就看规划,倘若使用量大我会将这做单一计时服务,交卷则透过使用测验id 、使用者id 取得是否超时,时间永远是该计时服务的时程故不用考虑对时。
继续阅读
[请益] url参数有加号,如何当搜寻条件
martin930
[请益] zend decrypt
lucier
[情报] 征求wordpress plugin合作开发团队
seiching
[请益] 请问如何转换成中文?
jami520
Re: [请益] 解析container stats与log
GALINE
[请益] 解析container stats与log
isolatorAY
[情报] 微开发者写作松活动分享
alansyue
[请益] VScode的php设定
Hadamard
[请益] 在Edge浏览器使用一段时间会自动登出
z604005
[请益] shell_exec无法执行
gene50814
Links
booklink
Contact Us: admin [ a t ] ucptt.com