第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

寫了一個js游戲,里面的變量涉及到速度等隱私數(shù)據(jù),怎樣寫js可以保證不被開發(fā)者惡意修改?

寫了一個js游戲,里面的變量涉及到速度等隱私數(shù)據(jù),怎樣寫js可以保證不被開發(fā)者惡意修改?

慕仙森 2018-08-01 18:28:08
寫了一個js游戲,里面的變量涉及到速度等隱私數(shù)據(jù),怎樣寫js可以保證不被開發(fā)者惡意修改?
查看完整描述

3 回答

?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗 獲得超4個贊

一般情況下未暴露到全局的變量都很難被修改。你可以考慮大量使用閉包來封裝數(shù)據(jù)。從服務(wù)器獲取數(shù)據(jù)的代碼和獲得的數(shù)據(jù)放在一個閉包中也是改不了的……但是仍有兩種情況可以修改

  • 監(jiān)聽 Ajax 請求過程,可以使用某些工具直接修改 HTTP 的返回結(jié)果。雖然可以考慮對數(shù)據(jù)加密,但是由于解密程序在客戶端而且沒有編譯成二進(jìn)制,要解密并修改數(shù)據(jù)也還是可以做到的。

  • 直接進(jìn)入開發(fā)者工具,在源文件上打斷點,也是可以修改的……

所以,實際上目前是沒有比較安全的辦法。以后 WebAssembly 廣泛之后可能會好一點。


查看完整回答
反對 回復(fù) 2018-08-06
?
慕斯王

TA貢獻(xiàn)1864條經(jīng)驗 獲得超2個贊

可以考慮js混淆,搜索關(guān)鍵字【js混淆】【反爬蟲】,這樣客戶端比較難以找到你核心的數(shù)據(jù)。

查看完整回答
反對 回復(fù) 2018-08-06
?
撒科打諢

TA貢獻(xiàn)1934條經(jīng)驗 獲得超2個贊

你在構(gòu)建函數(shù)里寫的變量如果不設(shè)在this上,就無法在外面修改,如下:

class Vehicle {

    constructor(type) {

        this.type = type;

        

        // private屬性

        let speed = 10;

        this.getSpeed = () => speed;

    }

}


const vehicle = new Vehicle('Test');

vehicle.type = 'Hello' //=> 沒問題

vehicle.speed = 15; //=> 不會改構(gòu)建函數(shù)里的`speed`

vehicle.getSpeed(); //=> 10

設(shè)在this的屬性都是public的,構(gòu)建函數(shù)里的letvarconst都無法在外面修改。


查看完整回答
反對 回復(fù) 2018-08-06
  • 3 回答
  • 0 關(guān)注
  • 1527 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號