2

我正计划用 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,因此保护数据交易是必不可少的。

4

2 回答 2

1

对于真正安全的方法,您需要将游戏的逻辑尽可能多地移至服务器,并且理想情况下使 Flash 电影只是一个向用户显示游戏当前状态的界面。

查看 Yeldarb 在此线程中的帖子以获得很好的解释。

于 2011-11-12T22:04:13.290 回答
0

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

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

于 2011-11-16T02:10:36.270 回答