我正在制作游戏,因此我有一些变数,我希望人们无法看到或搞乱。
现在我可以进入开发者控制台,只需输入
即可myVariable = 9999
它已经改变了。
我正在尝试做大多数服务器端,只是在客户端显示数据,但我仍然需要一些关键变量。
那么处理其他人干涉我代码的一些好方法是什么?
答案 0 :(得分:2)
你不能这样做!
您可以执行不同的操作以防止变量可编辑。例如,在strict mode中,您可以使用const
关键字创建不可变变量。
您还可以使用Object.defineProperty
定义不可变属性:
var obj = {};
Object.defineProperty(obj, 'immutable', {writable: false, value: 12});
obj.immutable; //12
obj.immutable = 13;
obj.immutable; //12
但是你永远做的就是阻止用户改变浏览器的这种行为。在大多数情况下,这甚至都不难。一个简单的浏览器插件可以重新定义Object.defineProperty
。它是客户端代码的限制,您永远无法阻止用户编辑它。
最后,他总是可以下载你的JS代码,编辑它并再次运行它。
这就是为什么必须在服务器上检查所有评论等验证的原因!对客户端进行额外验证可能很有用,但绝不安全!
答案 1 :(得分:-1)
如果这是在一个对象中,您可以使用Object.freeze函数使其不可变。