2014-05-09 202 views
0

我正在開發一個類似應用程序的測驗。
此應用程序跟蹤用戶花費多少時間來回答每一個問題。時間檢查:服務器端還是客戶端?

我應該計算時間服務器端還是客戶端?

我想出了這個優點/缺點:

服務器端:
優點:用戶不能 「欺騙」
缺點:用戶的等待時間會嚴重影響

客戶端:
優點:時間跟蹤更精確
缺點:半專家用戶可以使用一些JavaScript來「欺騙」

通過設計,更改背後的邏輯(即:計算每個答案的平均時間)將打破應用程序的泛濫。

延遲可能是一個問題,因爲5-10秒的變化可以改變用戶的最終分數(乘以平均50個答案);此應用程序可以在智能手機和平板電腦上運行,因此我預計網絡延遲很高。

我認爲這可能是一個普遍的html5/javascript開發問題,但是對於誰在問,我使用node.js作爲服務器。

回答

0

如果測驗應用程序不敏感,那麼只需使用客戶端的時間。

如果它非常時間敏感,我會同時使用服務器和客戶端的時間。

如果客戶端的時間比服務器的時間少了很多時間(比如5秒),那麼假設客戶端在作弊是安全的。


此外,我要提醒你的是,如果問題的答案是恆定的,這是很容易創建一個腳本將自動填充值。

例如, document.getElementById("QuestionOne").value="TheCorrectAnswer";void(0);

0

您可以使用客戶端時間,並將其與服務器端時間進行比較,即使用both.It不需要太多的代碼,但將是安全的。

相關問題