[請益] 確保在剛好5分鐘不差作答網頁測驗

軟工

82379

我最近在開發一個「線上測驗」的網頁

前端配合後端PHP

線上測驗的系統要剛好在5分鐘讓使用者作答

不能提早交卷也不能遲交

雖然我可以用前端的JavaScript 計時器計時

不過這樣只能防君子不能防小人

不法人士還是可以透過開發者工具偽造請求繞過網頁的計時器

所以這問題勢必要用後端來解決

我起初的想法是在後端開始出題時先用session記錄當時的timestamp

然後之後當伺服器後端接收到任一請求時,檢查收到時的timestamp跟當初session記錄的
timestamp相減是否剛好為5分鐘

不過這樣又會有另外一個問題

因為網路傳遞請求一定會有延遲

而每次的延遲時間都不同(也會根據使用者網路情況有所差異)

所以不管前端後端好像都無解?

各位有什麼想法嗎?

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.12.25.127 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1674909243.A.7C9.html
foreverk1樓換個角度思考,有必要到精確到連網路延遲都算進去嗎? 01/28 21:00
網路延遲千萬別小看 使用者網路狀況如果真的不好,延遲好幾分鐘都是有可能的
cspy2樓設計一個key的演算法 這樣可以避免非合法的送出 01/28 21:04
請問key演算法避免非合法送出的原理是什麼 是用非對稱加密法在哪裡加密? 因為在前端加密應該沒什麼意義 不法人士只要知道網頁原始碼就可以非法製造假的key和請求
ssccg3樓要算網路延遲看NTP的作法,要避免使用者網路問題就是要多個 01/28 21:05
ssccg4樓不同地方的server,然後timestamp要簽章 01/28 21:06
cspy5樓計時的部分還是需要用js去計 01/28 21:10
ko27tye6樓用個心跳包阿 延遲過久就當斷線了 01/28 21:41
WaterLengend7樓後端紀錄時間是對的,然後時間一到在後端API會檢查 01/28 21:46
WaterLengend8樓超過時間就不能對考試的任何操作進行動作,前端就看 01/28 21:47
WaterLengend9樓有沒有動畫或是其他需求要做 01/28 21:47
s06yji310樓網路延遲10分鐘你要算還是不算... 01/28 21:51
foreverk11樓我原本以為是毫秒級的網路延遲,如果是分鐘級的,我想 01/28 21:54
foreverk12樓關注在改善受測者或是系統的環境,會比關注在演算法好 01/28 21:54
foreverk13樓得多吧 01/28 21:54
foreverk14樓如果以台灣的網路環境來看,會延遲到分鐘級,除了受測 01/28 21:57
foreverk15樓者跑去搭大眾運輸然後剛好過山洞沒訊號外,再來就是ISP 01/28 21:57
foreverk16樓瞬斷,那這是要怎麼算XD 01/28 21:57
Hsins17樓比較好奇是什麼類型的測驗跟受眾... 需要這麼來防... 01/28 22:01
final0118樓黑客大賽?XD 01/28 22:08
vi00024619樓延遲應該是無解 01/28 22:09
Lomonosov20樓不能提早交卷是認真的嗎? 01/28 22:57
GoalBased21樓測驗差個30秒無所謂 01/28 23:00
lovdkkkk22樓可以用推文有提到的加密 01/28 23:16
viper970923樓延遲到分鐘級...這個無解吧XD 01/28 23:16
lovdkkkk24樓加密演算法可以加鹽,如果是 5 分鐘就用 300 (秒) 當鹽 01/28 23:16
lovdkkkk25樓把相關參數跟方法放在開發者工具碰不到的地方, 01/28 23:16
lovdkkkk26樓每秒把鹽的參數 +1,送出時資料過個加密到後端, 01/28 23:17
lovdkkkk27樓後端解得出來就表示使用者剛好是在 300 秒時按下送出 01/28 23:17
lovdkkkk28樓是說到底為什麼不能提早交啊... 01/28 23:17
lovdkkkk29樓考試內容包括手速? 要準秒按鈕? 01/28 23:19
lovdkkkk30樓寫 timer 時間到自動點送出算違規嗎? 算的話上面也無效 01/28 23:24
更多請益
[請益]非本科轉職Offer請益
[請益] 如何比較在新舊機器上build code的效能
[請益] 適合入門functional programming 的教學
[請益] PM Offer選擇(104/大樹/Web3)
[請益]巨量資料分析很屌嗎?
[請益] 南山人壽IT 狀況
[請益] 用Spotfire的公司多嗎?
[請益] 豬屎屋工作,求書單