gpt4 book ai didi

javascript - 如何在 JavaScript 中保存未经授权的操作

转载 作者:行者123 更新时间:2023-11-30 10:44:27 25 4
gpt4 key购买 nike

我用 javascript/HTML5 编写了一个服务器客户端应用程序,它应该允许客户端在服务器端使用 Node.js 实时通信/玩游戏。

我知道私有(private)变量等的使用。但是如何防止整个游戏引擎通过控制台 api 进行未经授权的访问?

关于如何以所有变量都属于私有(private)范围的方式编写它,一旦启动它们就几乎独立运行,而无需在全局范围内注册单个变量,这样就没有人可以把游戏搞砸了!

根据我的研究,我可以做类似的事情

 function Game(){
// All declarations here
// Start a logic in here
}

然后调用它

 new Game();

会做吗?但是有没有更好的方法来做同样的事情?

最佳答案

您可以通过匿名函数在不注册任何变量的情况下运行 JavaScript 应用程序:

(function() {
//local variables here.
})();

但是没有可靠的方法可以防止作弊:可以很容易地分析您的代码,并创建虚假的 AJAX 请求。使用最新的浏览器,捕获您的代码非常容易。

有了 getter 和 setter,任何人都可以有效地拦截您的函数。使用已弃用的 arguments.callee.caller 属性,攻击者可以读取函数调用的源代码,有效地访问此答案顶部定义的闭包。

例子:

var _alert = alert;
window.alert = null;
Object.defineProperty(window, 'alert', {
'value': function(m) {
console.log('Intercepted. Function source: ' + arguments.callee.caller);
_alert.call(this, m);
}
});
(function(){
var localVar = 'secret';
alert('Hi!');
})();

关于javascript - 如何在 JavaScript 中保存未经授权的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9240644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com