首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >防止代码被用户执行

防止代码被用户执行
EN

Stack Overflow用户
提问于 2012-09-19 08:03:30
回答 2查看 101关注 0票数 5

所以我正在用JavaScript写一个游戏,最大的问题是,无论是谁玩它,谁可能对JS有很好的了解,就可以打开我的源代码,弄清楚它是如何工作的,然后把一个game.score = 100000000000000;插入控制台。然而,似乎除了混淆脚本之外,将所有内容包装在一个匿名函数中也能起到作用。

代码语言:javascript
运行
复制
(function() {
    game_start = function() {
        //etc
    }
    //etc
 })();

当我尝试从Chrome控制台运行任何代码时,都会出现undefined。这是想要的结果,但是有没有办法绕过我的方法,让它变得无用呢?或者甚至是一种更好的方法来防止从控制台运行东西?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-19 08:17:33

没有办法确保那个人不会作弊。即使代码被严重混淆(我说的是H5b(b){if(b.pd()&&b.Ca&&b.gKa){var a=b.ra(RT.Nwa)之类的东西),您仍然可以查看UI更改或网络请求,并从那里跟踪它。

有些人使用AJAX调用来验证分数,例如,每次分数增加/下降,应用程序都会向后端发出AJAX调用,您也会在后端跟踪分数。当用户提交最终分数时,您将其与后端分数进行比较,如果分数不同,则您将知道此人作弊。

但是,这并不会阻止人们编写执行这些ajax调用的脚本,这种方式会使它的得分有效。

不能,没有办法确保用户端的代码不会被破坏。

票数 4
EN

Stack Overflow用户

发布于 2012-09-19 08:09:40

抱歉,当游戏在用户的机器上运行时,没有办法真正防止用户作弊。在用户机器上运行的任何代码都可以由用户操作。当你想让作弊变得不可能时,你必须在服务器上实现所有的游戏逻辑,不要发送任何玩家不应该知道的信息,也不要接受任何玩家不允许执行的命令。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12486809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档