2015-12-20 18 views
0

我想構建類似測驗的應用程序。Javascript測驗安全

在瀏覽器中播放聲音,用戶必須猜測它是什麼音高。如果答案正確,請更新用戶評分。音高由隨機生成的整數表示。將有高分表。

我的問題是:

是否有可能做到這一點完全安全的(不允許用戶通過發送自己的崗位requestss檢測來自瀏覽器的開發者工具或更新得分聲高)?

什麼在我腦海中:

  1. 如果聲音音調產生服務器端,我將不得不通過瀏覽器來發送,然後用戶可以例如發現聲音音高在網絡部分鉻。
  2. 如果聲音產生客戶端(在clojure中),我會比較生成的聲音音調的答案,然後將分數更新發布請求發送到服務器。用戶可以輕鬆地模擬這種請求。

回答

0

不是它不安全。 您的所有文件都將在用戶的計算機上。聲音文件和JavaScript代碼包括在內。

這意味着用戶可以查看源代碼來獲取答案。

如果你想保護它,你應該看看服務器端解決方案。

0

您可以以加密形式從服務器發送聲音音調。如果用戶回答了密碼,解密服務器端的音調並匹配答案。您也可以在服務器端進行不同的檢查,以確定用戶是否嘗試禁止某些東西。

+0

我也想過這個解決方案,但這裏有另一個問題 - 我必須在客戶端播放這個聲音。所以我必須將音高傳遞給這樣的功能: MIDI.noteOn(channel,soundPitch,velocity,delay); –

+0

你是什麼意思?您不必將純音文字保持爲SoundPitch。以某種方式傳遞函數參數爲加密。 – wiz6

+0

問題是'如何?' :)據我所知,如果數據被加密,我必須加密才能得到數據 - 我只需要知道音調,因爲我想播放這種聲音,加密的字符串不會告訴我什麼。我是對的,還是我錯過了什麼? –