猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
写了一个js游戏,里面的变量涉及到速度等隐私数据,怎样写js可以保证不被开发者恶意修改?
写了一个js游戏,里面的变量涉及到速度等隐私数据,怎样写js可以保证不被开发者恶意修改?
慕仙森
浏览 1467
回答 3
3回答
犯罪嫌疑人X
一般情况下未暴露到全局的变量都很难被修改。你可以考虑大量使用闭包来封装数据。从服务器获取数据的代码和获得的数据放在一个闭包中也是改不了的……但是仍有两种情况可以修改监听 Ajax 请求过程,可以使用某些工具直接修改 HTTP 的返回结果。虽然可以考虑对数据加密,但是由于解密程序在客户端而且没有编译成二进制,要解密并修改数据也还是可以做到的。直接进入开发者工具,在源文件上打断点,也是可以修改的……所以,实际上目前是没有比较安全的办法。以后 WebAssembly 广泛之后可能会好一点。
0
0
0
慕斯王
可以考虑js混淆,搜索关键字【js混淆】【反爬虫】,这样客户端比较难以找到你核心的数据。
0
0
0
撒科打诨
你在构建函数里写的变量如果不设在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; //=> 不会改构建函数里的`speed`vehicle.getSpeed(); //=> 10设在this的属性都是public的,构建函数里的let, var和const都无法在外面修改。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
JavaScript
游戏开发
请问学软件开发专业可以开发游戏软件吗 ?
1 回答
关于开发小游戏哪个平台好赚的问题?
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续