我正在为一个病毒式营销活动创建一个游戏,其中大约每100个玩家中就有一个可以访问某个独家游戏的QR码。游戏将需要从数据库中提取信息,因为游戏环境会随着时间的推移而“增长”。
我还没有决定如何做到这一点,但我有两个想法,每个都有他们的担忧:
解决方案1:将SWF连接到数据库
担心:我之前已经反编译了SWF,非常容易。如何保护我的数据库凭据?
解决方案2:让SWF连接到查询数据库的.php脚本。这样我的数据库连接凭证在php文件中是安全的。
关注:但是,如何确保自定义脚本不访问PHP脚本?有人可以从SWF源获取php URL,直接访问它,绕过flash应用程序。
答案 0 :(得分:2)
你需要了解一件事
任何客户方都可以,如果涉及金钱可能会被黑客入侵
话虽如此,安全性是关于层次的,涉及的层越多,被黑客攻击就越困难。
您可以使用许多方法并将它们组合在一起,从而将普通的黑客入侵。
我开始的第一个地方永远不会在客户端存储敏感信息。(IE:服务器编译的SWF)
如果你有数据,可以抓取/修改。
接下来,我将使用公钥加密发送到swf和从swf发送的所有数据。此密钥将经常过期。要获得密钥,swf必须通过用户凭证(登录)
在服务器端,您可以通过会话跟踪用户
您可以使用持久连接添加套接字连接支持
httsp,SSL,TSL
还有很多选择可供选择。
选择是你的。
然而,真正的问题是你想走多远。
答案 1 :(得分:1)
我会立即将解决方案1排除在原因之外。
所以,让我们谈谈如何规避解决方案2的问题。
我看到的一种常见方法是让服务器端脚本处理这些特殊项的生成。如果你看一下很多在线Flash游戏,我相信你会同意Flash几乎完全负责用户界面,其余部分由后端处理。这当然限制了你可以这样做的游戏类型。
还有另一种方式。如果您的后端可以生成swf,则可以存储仅在有限时间内有效的会话数据。这当然不一定是存储所有游戏资产的swf,而只是与后端通信所需的类。然后动态生成服务器交互swf将允许存储会话重要数据并且每次都使用不同的密钥对其进行加密,这样如果有人破解它,它将限制他们可以用它做什么,因为新会话需要新的凭据