【发布时间】:2011-11-12 21:20:34
【问题描述】:
我打算用 actionscript 3.0 (flash) 制作游戏。但是,我在保存用户积分时遇到了一些安全问题。
更具体地说,请阅读以下内容,您将了解确切的问题。
- 您正在启动我的 Flash 应用程序。 PHP 为您的用户名创建一个会话。玩了几分钟就达到了 750 分。
- 您点击“保存我的积分”按钮。
- 它将“game.php?points=[]”与您的点数联系起来,因此,game.php?points=750。
- 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