建议(半)保证Flash / PHP游戏中的高分
作者:互联网
…我在这里已经阅读了一些讨论了各种方法的线程,并且正在寻找对我们提出的建议解决方案的一些反馈.在其中一个帖子中发布了一条评论,推荐了一个听起来很棒的公钥/私钥,这就是我们的想法……
客户端 –
1.密钥存储在Flash swf内部,使用第三方工具加密.
2.高分与高分值一起散列(EX:md5(‘ourSecretKey’200))
3.此值通过AMF发送到服务器上的PHP脚本,以及高分(200)
服务器端 –
1.服务器接收数据并哈希传递的高分(200)密钥(‘ourSecretKey’存储在服务器以及Flash中)并检查传递的哈希值,如果值匹配则允许高分值输入,否则失败.
我知道这不是一个万无一失的解决方案,但这是否可以接受?我的意思是,对于一个简单的在线Flash游戏,这是否足够安全?思考?
先感谢您!
解决方法:
对于一个荒谬的短值(即:值<64个字符),由于彩虹表攻击,MD5作为哈希变得无效,并且由于你发送的值将通过线共享,他们所要做的就是蛮力共享秘密(他们有一个已知的产品可以使用)
因此,那不是公钥私钥.它的共同秘密.
此外,请记住,这个共享秘密将在您发送给用户的Flash文件中,这些日子并且被轻易地拆解,然后您的“秘密”不再是秘密.
您需要一个具有适当加密签名的更具挑战性的响应机制,其中为服务器中的每个游戏分配新的签名密钥,并且不能使用相同的签名密钥提交多个分数. (为了额外的保护;))
>用户开始游戏.请求签名密钥. (符号密钥由他们无法访问的另一个密钥生成).
>分数用符号键签名,然后发送
>您使用发送的密钥验证符号的值.
>您丢弃发送给他们的签名密钥.
但是,您仍然遇到无法阻止实际评分系统被篡改的问题.足够聪明的人可以对SWF对象进行反向工程,并注入新的代码,只需将分数设置为所选值即可.
标签:php,flash,actionscript-3,actionscript 来源: https://codeday.me/bug/20190928/1827336.html