【问题标题】:Actionscript 3.0 -> PHP -> MySQL Security Issue on a Game ApplicationActionscript 3.0 -> PHP -> 游戏应用程序上的 MySQL 安全问题
【发布时间】:2011-11-12 21:20:34
【问题描述】:

我打算用 actionscript 3.0 (flash) 制作游戏。但是,我在保存用户积分时遇到了一些安全问题。

更具体地说,请阅读以下内容,您将了解确切的问题。

  1. 您正在启动我的 Flash 应用程序。 PHP 为您的用户名创建一个会话。玩了几分钟就达到了 750 分。
  2. 您点击“保存我的积分”按钮。
  3. 它将“game.php?points=[]”与您的点数联系起来,因此,game.php?points=750。
  4. PHP 连接到 MySQL 并使用您在打开应用程序时输入的用户名进行更新/插入查询,并使用 $_GET['points'] 获取积分,如您在 3 中看到的那样。

问题是, 任何可以直接浏览“game.php?points=999999999999”的人都会将他的积分保存在数据库中。

我考虑过加密积分,但是,Flash 是一个客户端应用程序,任何人都可以使用“Cheat Engine”之类的应用程序更改“积分”值。一旦他们改变了积分,Flash会自动生成加密积分。

我也想过在每个玩家注册时为他们创建一个私钥并进行相应的加密,但这也行不通,因为一旦用户使用 Cheat Engine 更改了他的积分,flash 将自动使用给定的私钥加密积分,因此,另一个无用的理论......

有人建议我使用 SSL,只是因为 Zynga 等流行公司使用它,但我在这里寻找其他理论。

关于这个案例的任何想法,除了使用 SSL 吗?

附言。游戏将是 MMO,因此保护数据交易是必不可少的。

【问题讨论】:

  • @weltraumpirat 这绝不是一个解决方案,您应该删除此评论。
  • @Rook 我不敢苟同。问题几乎相同,接受的答案包括下面所说的所有内容。
  • @weltraumpirat 你对这个问题的看法是正确的。但是答案是非常错误的。
  • @Rook 请再读一遍。它迭代了所有可能的加密形式——然后最后说明了为什么它们没有帮助,还有什么可以做的。这是我在 SO 上看到的最好的答案之一,而且它没有得到 200 多票……

标签: php security actionscript mmo


【解决方案1】:

对于真正安全的方法,您需要将游戏的逻辑尽可能多地移动到服务器上,并且最好让 Flash 电影只是一个向用户显示游戏当前状态的界面。

查看 Yeldarb 在this thread 的帖子以获得很好的解释。

【讨论】:

    【解决方案2】:

    首先,SSL 对您没有任何帮助。听起来你从未听说过Tamperdata.

    这是一个经典的CWE-602 违规行为。密码学不能解决这些问题,因为攻击者对应用程序的控制权比你多。没有地方可以隐藏秘密。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2021-06-14
      • 2023-04-06
      • 1970-01-01
      相关资源
      最近更新 更多