我对Flash知之甚少,但是对于一个小的Flash游戏,我必须使用PHP将用户的分数和成功尝试存储在数据库中。现在,闪存在用户计算机上本地运行并连接到远程服务器。如何防止操纵游戏分数。此用例是否有任何最佳实践?
您可能需要检查以下其他问题:
- Q46415 将未经篡改的数据从 Flash 应用程序传递到服务器?
- Q73947 阻止人们入侵Flash游戏基于PHP的高分表的最佳方法是什么?
- Q25999 非网页游戏安全在线高分榜
你问的本质上是不可能的。游戏在客户端上运行,因此完全受用户摆布。唯一确定的方法是根据用户的输入(鼠标移动,按键)在服务器上运行游戏的实时模拟,这绝对是荒谬的。
这个话题已经在这里介绍@stackoverflow,至少部分
阻止人们入侵Flash游戏中基于PHP的高分表的最佳方法是什么
正如ssddw指出的那样,这从根本上是不可能的。 发送分数的代码在用户的计算机上运行,他们可以控制它以及在那里运行的所有内容。
你能做的最好的事情就是定期更改加密机制,以便分数操纵者需要一段时间才能再次弄清楚。 你只能尽量减少损害,永远无法消除它,但是在像我工作的网站这样,如果我们每天看到的数十万人中只有一百人发送假分数,我们认为这完全在可接受的范围内。(我们仍然粉碎那些我们抓到作弊的人,但我们认为这不是什么大问题。
你至少可以抛出高于你认为合法的阈值的分数。它仍然为高分榜单留下了更微妙的操纵空间,但至少有助于缓解看到不可能实现的分数在排行榜上名列前茅的明显挫败感。