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