我需要我的Flash客户端安全地与服务器通信(通过二进制套接字)。为此,我考虑在AS3代码中嵌入预共享密钥,并通过自定义协议交换XORed数据。
我被告知,SWF反编译器可以很好地使所有嵌入代码清晰可读。这是否意味着我无法真正隐藏我的钥匙?
如果这种方法不切实际,还有哪些其他选择?我曾尝试过as3crypto,但却发现它充满了缺点并缺乏严肃的文档。
答案 0 :(得分:4)
你根本无法隐藏你的密钥 - SWF完全不受信任,可以很容易地反编译。使用SWF来处理安全性非常困难,因为它们在客户端上运行并且不受信任。
具体取决于您要通过安全通信实现的目标。例如,如果你试图获得一个几乎不可能的高分系统,因为游戏在客户端(SWF)上运行,他们可以操纵它来向服务器吐出他们想要的任何分数。以下是对此的良好解读:What is the best way to stop people hacking the PHP-based highscore table of a Flash game
如果您只能将SWF用作前端UI并且所有逻辑都发生在后端,那么您可以保护您的应用程序(使用上述高分榜示,如果游戏不是AS3游戏,但实际上在服务器本身上运行,安全起来会容易得多,因为后端是可信任的,用户无法修改或查看,但如果逻辑发生在SWF上,那么你几乎没有运气。 / p>