2010-05-07 92 views
0

最近我发现编程游戏时,Javascript是多么不安全(我正在尝试做一个基于回合的RPG游戏,目前战斗计算是通过Javascript完成的,任何玩家都可以使用它作弊,想要),所以我想知道如果我将战斗屏幕移动到闪光灯,如果这将是更安全的,或者是有一种简单的方法来欺骗?Flash/Actionscript比Javascript更安全的在线游戏吗?

回答

5

加油。这真的是same question。答案仍然相同:

无论游戏是什么,无论是 JS Flash还是本机二进制,如果评分系统易受攻击,如果游戏足够好,人们会篡改。每次都坚持聪明的服务器。

这不是一个问题,可以通过在客户端混淆来解决。关于保持高分表格/游戏数据的安全性,有很多现有技术。锐化你的google-fu并看看。

虽然这篇文章的标题会暗示它不适用,但我认为浏览器/非浏览器游戏在这方面的差异是不相关的。因此,我们来看一看:

Secure Online Highscore Lists for Non-Web Games

+0

谢谢。对于这个准双层的帖子感到抱歉,我只是拼命想找到一种方法来制作一款基于回合制的RPG游戏,你可以在不刷新页面的情况下轮流赢得或失败,但我很快发现它是不可能的(我想当看到目前没有任何大声笑时,它就变得非常精彩)。再一次,谢谢你,我只需要验证。 – 2010-05-07 00:55:10

+1

@Sean:你不需要刷新页面。使用将用户输入发送到服务器的持久性JavaScript或Flash实现。服务器执行游戏逻辑并返回结果。然后客户给出视觉反馈(例如怪物被击中并失去15次生命)。 – back2dos 2010-05-07 09:37:04

1

这是非常安全的,因为Flash源很难读取js源代码。但是这两个都不是特别安全

+0

我同意。至少你需要比Firebug多一点来破解它。 – 2010-05-07 00:30:15

+1

Firebug的'Net'标签会告诉你什么是Flash请求:-) – bobince 2010-05-07 01:11:52

+0

我可以选择安全或不安全。稍微不安全的确会削减它,恐怕是服务器端或没有。 – Shane 2010-05-07 01:38:35

1

正如我在previous answer说,安全系统不能信任的客户评分输入。无论预定的程序是Flash还是JavaScript,都没关系。一旦您将程序发送到客户端,他们就会拥有任何必需的密钥。所以你不能依靠客户给你准确的分数。要做到这一点的唯一可靠方法是将分数计算移动到服务器。然后,对于一个机器人来说,它仍然需要手动计算每个动作。