我正在开发一个JS游戏,希望尽可能地防止作弊。我知道这几乎是不可能的,但我想阻止用户进入控制台并通过说类似的话来改变他们的生活game.lives = 99;
有没有一种方法可以检测诸如控制台之类的变量lives
是否已从控制台更改,从而标记游戏被黑并停止执行我的代码?我知道我可以进行服务器端检查,但我想避免滞后。如果有的话,我正在寻找一个 JS 答案。
我正在开发一个JS游戏,希望尽可能地防止作弊。我知道这几乎是不可能的,但我想阻止用户进入控制台并通过说类似的话来改变他们的生活game.lives = 99;
有没有一种方法可以检测诸如控制台之类的变量lives
是否已从控制台更改,从而标记游戏被黑并停止执行我的代码?我知道我可以进行服务器端检查,但我想避免滞后。如果有的话,我正在寻找一个 JS 答案。
您可以使用一个闭包,它本质上会使您的所有变量都是私有的,因此无法从控制台访问。如果您需要一些公共变量和方法,您可以使用显示模块模式。你可以在这里阅读更多关于它们的信息:http: //www.joezimjs.com/javascript/javascript-closures-and-the-module-pattern/
您将无法完全阻止用户更改 javascript 代码或变量值。你只能让它变得更加困难。Fisch 提到使用闭包,以便所有变量都是私有的。查看立即调用函数表达式 (IIFE) 模式。它用于许多插件样式代码并有助于防止修改。
如果用户想要更改变量值,没有什么可以阻止他们在调试模式下运行游戏并在断点处修改值。