簡體   English   中英

通過html5 javascript在客戶端加密數據

[英]encrypting data on client-side via html5 javascript

我用html5建立了一個Web應用程序。基本上是一個帶有時間計數器和問答的表格。
我正在尋找一種用戶無法通過瀏覽器調試器等更改分數(從回答問題的時間開始計算)的方法。
加密原始數據聽起來像是一個選項..但是當數據處於鎖定狀態時,用戶可以更改它。
我在服務器端添加了一些“時間檢查” ..但我還是希望一些客戶端保護。
有什么建議么? 謝謝

我不是網絡專家,但我想說的是將所有驗證都放在服務器端。 根據我對使用MMORPG的人們的了解,總有一種訪問/更改客戶端數據的方法。

您要的是不可能的。 不管您如何實現,用戶都可以使用調試工具來更改代碼在其瀏覽器中的運行方式,或者最終,僅由您自己生成HTTP POST請求,而與您的代碼無關。

好吧,既然您說的是使用html5,為什么不只使用存儲支持呢? 例如:

var store = sessionStorage.question= new Array();
store[0]="10s";
store[1]="5s";

現在只需以編程方式進行設置即可! 它將持續整個會話將其放入文件中並導入,高於平均水平的用戶將不知道在哪里查看! 您也可以檢查此鏈接以獲得更強大的解決方案

正如Nick所說,堅定的用戶將能夠解決您在客戶端計算機上使用的任何加密方案。 最多您可以使他們難以突破。 您需要做兩件事:1)加密以使篡改變得困難,以及2)嘗試檢測確實發生的任何篡改。

我不知道有什么可用的Java腳本,如果可用,請使用AES進行加密,並使用HMAC來檢測篡改。 如果必須自己編寫,則可以使用RC4進行加密(強度不如AES,但更易於編碼)和校驗和以檢測篡改。

您可以做的一件事是使攻擊者更難找到您的加密密鑰,而HMAC密鑰則不是將它們存儲在一個地方。 有兩個數組,使得實際鍵是array1 XOR array2。 這樣,實際的密鑰就不會在任何地方的代碼中明確顯示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM