当前位置:  开发笔记 > 编程语言 > 正文

建议(半)保证Flash/PHP游戏中的高分

如何解决《建议(半)保证Flash/PHP游戏中的高分》经验,为你挑选了1个好方法。

...我在这里已经阅读了一些讨论了各种方法的线程,并且只是在寻找对我们提出的建议解决方案的一些反馈.在其中一个帖子中发布了一条评论,推荐了一个听起来很棒的公钥/私钥,这就是我们的想法......

客户端 - 1.密钥存储在Flash swf内部,使用第三方工具加密.2.高分与高分值一起散列(EX:md5('ourSecretKey'+ 200))3.此值通过AMF发送到服务器上的PHP脚本,以及高分(200)

服务器端 - 1.服务器接收数据并哈希传递的高分(200)+密钥(存储在服务器以及Flash中的'ourSecretKey')并检查传递的哈希,如果值是匹配的,则允许输入得分高,否则失败.

我知道这不是一个万无一失的解决方案,但这是否可以接受?我的意思是,对于一个简单的在线Flash游戏,这是否足够安全?思考?

先感谢您!



1> Kent Fredric..:

对于一个荒谬的短值(即:值<64个字符),由于彩虹表攻击,MD5作为哈希变得无效,并且由于您发送的值将通过线路共享,他们所要做的就是暴力破解共享秘密(他们有一个已知的产品可以使用)

因此,那不是公钥私钥.它的共同秘密.

此外,请记住,这个共享秘密将在您发送给用户的Flash文件中,这些日子并且被轻易地拆解,然后您的"秘密"不再是秘密.

您需要一个具有正确加密签名的更具挑战性的响应机制,其中为服务器中的每个游戏分配新的签名密钥,并且不能使用相同的签名密钥提交多个分数.(为了额外的保护;))

    用户开始游戏.请求签名密钥.(符号密钥由他们无法访问的另一个密钥生成).

    分数用签名密钥签名,然后发送

    您使用发送的密钥验证标志的值.

    您丢弃发送给他们的签名密钥.

但是,您仍然遇到无法阻止实际评分系统被篡改的问题.足够聪明的人可以对SWF对象进行反向工程,并注入新的代码,只需将分数设置为所选值即可.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有