保护Flash到PHP的通信

保护Flash到PHP的通信,php,flash,security,encryption,actionscript,Php,Flash,Security,Encryption,Actionscript,我有一个带有php后端和MySQL数据库的flash游戏 要玩游戏,用户必须登录。在游戏过程中,客户端还将定期向数据库发送更新。例如,当用户购买新的游戏内物品时 我有两个顾虑。首先,用户名和密码以明文形式发送到服务器(但在我的数据库中是加密的)。其次,登录后,将向客户端发送一个用户ID,以便在所有后续请求中使用。这些请求也以纯文本形式发送 这两种通信都面临数据包嗅探的风险。一旦有人了解到服务器请求的结构,他们可能会创建自己的虚假请求,替换自己的值/用户ID,通常会引起很多不安 我有什么选择?购买

我有一个带有php后端和MySQL数据库的flash游戏

要玩游戏,用户必须登录。在游戏过程中,客户端还将定期向数据库发送更新。例如,当用户购买新的游戏内物品时

我有两个顾虑。首先,用户名和密码以明文形式发送到服务器(但在我的数据库中是加密的)。其次,登录后,将向客户端发送一个用户ID,以便在所有后续请求中使用。这些请求也以纯文本形式发送

这两种通信都面临数据包嗅探的风险。一旦有人了解到服务器请求的结构,他们可能会创建自己的虚假请求,替换自己的值/用户ID,通常会引起很多不安


我有什么选择?购买SSL证书并使用https会是一个解决方案吗?我可以使用公钥/私钥类型吗?

除了SSL的明显优点之外,还有一些缺点:

  • 你必须加密所有东西,否则什么都不加密

    • 这意味着,如果您的站点显示第三方广告或任何类似内容,您必须确保所有这些都可以通过安全连接获得

    • SSL加密流量几乎是非加密流量的两倍。对于通常不想加密的图像和其他资产来说,这将是特别痛苦的

    • SSL加密在计算上非常昂贵,并且会在服务器上增加大约%的负载(不必担心,除非您有大量的服务器端处理,但对于大型应用程序,这是一个重要因素)

  • 证书要花钱,必须更新

  • 通过SSL进行闪存通信和不发送会话cookie存在一些已知问题,特别是在使用加密连接时

  • 现在,通常情况下,您绝对不希望自己实现安全性。我不认为它,如果赌注很高,但我不知道你的具体情况,我会考虑做选择性加密,只有重要的事情,特别是因为用户不会得到可怕的信息“不安全”的内容与“安全”的内容,如果你这样做,在Flash,而不是在浏览器级别


    有一些加密库可以在Flash中进行RSA加密,同样,您也可以在服务器端进行RSA加密。可能应该根据对安全性的投资对项目的盈利程度来决定实现这一点的方法。

    我认为SSL是传输完整性/机密性的明显解决方案,但“发送虚假请求”部分无论如何都无法解决——你不能信任客户端,因此,您必须在服务器端进行尽可能多的检查。