【问题标题】:Is Flash/Actionscript any safer than Javascript for persistent online game?对于持久性在线游戏,Flash/Actionscript 是否比 Javascript 更安全?
【发布时间】:2011-02-16 15:26:59
【问题描述】:

我最近发现在编写游戏时 Javascript 是多么不安全(我正在尝试做一个基于回合的 RPG,目前战斗计算是通过 Javascript 完成的,任何玩家都可以作弊当然给自己尽可能多的 XP他们想要),所以我想知道我是否要移动我的战斗屏幕来闪烁是否会更安全,或者是否有同样简单的方法来作弊?

【问题讨论】:

    标签: javascript flash actionscript


    【解决方案1】:

    来吧。真的是same question。答案也一样:

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

    这不是客户端混淆就能解决的问题。有很多关于保持高分表/游戏数据安全的现有技术。磨砺你的 google-fu 看看吧。

    虽然这篇文章的标题暗示它不适用,但我认为浏览器/非浏览器游戏之间的区别在这方面是无关紧要的。因此,请看:

    Secure Online Highscore Lists for Non-Web Games

    【讨论】:

    • 谢谢。很抱歉这个准双人帖,我只是拼命想找到一种方法来制作一个回合制 RPG,让你在不刷新页面的情况下轮流战斗直到输赢,但我很快发现这是不可能的(我想当看到目前没有任何大声笑时,on 正在做一些很棒的事情)。再次感谢您,我只需要验证。
    • @Sean:你不需要刷新页面。使用将用户输入发送到服务器的持久 JavaScript 或 Flash 实现。服务器执行游戏逻辑并返回结果。然后客户端给出视觉反馈(例如怪物被击中并失去 15 条生命)。
    【解决方案2】:

    这稍微安全一点,因为 flash 源代码比 js 源代码更难阅读。然而,两者都不是特别安全。

    【讨论】:

    • 我同意。至少你需要比 Firebug 更多的东西来破解它。
    • Firebug 的“网络”标签也会显示 Flash 请求的内容 :-)
    • 我可以选择是否安全。恐怕有点不安全确实可以减少它,所以它是服务器端的,或者什么都没有。
    • @bobince:Firebug 仅适用于 HTTP。 Flash 允许纯 TCP。此外,JS 始终作为源版本分发,并且像greasemonkey 这样的插件允许您随意操纵运行时的状态。 Flash 确实让黑客更难破解。
    【解决方案3】:

    正如我在previous answer 中所说,安全系统不能信任客户端分数输入。预期的程序是 Flash 还是 JavaScript 并不重要。一旦您将程序发送给客户端,他们就会拥有任何所需的密钥。所以你不能依赖客户给你准确的分数。唯一可靠的方法是将分数计算移至服务器。然后,要让机器人玩,它仍然必须手动计算每个动作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多