在Flash&中报告真实游戏分数PHP

时间:2011-01-26 12:10:01

标签: php flash security variables

嗨,我正在制作一个Flash游戏并且只是想知道,我如何保护游戏中的分数不受黑客攻击?目前我正在使用在服务器上设置并发送到客户端的随机数,然后使用散列函数来散列&得分+ randNumber' (有点复杂,但同样的想法),然后我将得到的分数和哈希发送到服务器(显然记录尝试作弊)。到目前为止,这仍然有效,但通过反编译闪存并找出散列公式是什么,仍然很容易破解分数。有没有其他方法可以将分数传输到服务器而几乎没有黑客攻击的可能性?

3 个答案:

答案 0 :(得分:4)

你的哈希不会增加安全性,但只会增加你系统的默默无闻,即它使得在实践中输入假分数变得更加困难,但理论上的障碍保持不变。关于这类“安全”的Wikipedia has more任何形式的校验和和加密都不会对反向设计应用程序协议的攻击者采取任何措施 - 这很难,但听起来并不难。

您唯一的希望就是将游戏的重要部分修改为您控制的计算机,即您的服务器。例如,一个好主意可能是客户端发送一个“重播文件”,其中包含用户输入的所有操作,在服务器上重放游戏,然后计算服务器上的分数。

答案 1 :(得分:1)

尝试将业务逻辑移至服务器端,因为这很难破解。仅使用闪存打印结果不存储它们。在服务器中进行散列而不是在客户端中进行散列,这样反编译就不会暴露你的逻辑。

答案 2 :(得分:1)

使用AES加密而不是散列。

as3crypto提供了一个很好的AES实现,即使它需要PHP方面的一些工作。 Here是一个可以使用的工作示例。

还有一种解决方案,它使用JavaScript在客户端进行编码。您可以下载包含PHP,JS,Flex和AIR代码here的完整软件包。