0

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

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

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

这两种通信都存在数据包嗅探的风险。一旦有人了解了对服务器的请求的结构,他们就可以创建自己的虚假请求,替换自己的值/用户 ID,通常会引起很多麻烦。

我有哪些选择?购买 SSL 证书并使用 https 会是一种解决方案吗?我可以使用公钥/私钥类型的东西吗?

4

1 回答 1

0

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

  1. 您将不得不加密所有内容或什么都不加密。

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

    • SSL 加密的流量几乎是未加密流量的两倍。这对于您通常不想加密的图像和其他资产来说尤其痛苦。

    • SSL 加密的计算成本很高,并且会在您的服务器上增加一些负载(不用担心,除非您有很多服务器端处理,但对于更大的应用程序,这是一个重要因素)

  2. 证书要花钱,必须更新。

  3. Flash 通过 SSL 通信和不发送会话 cookie 存在一些已知问题,尤其是在使用加密连接时。

现在,通常情况下,您绝对不想自己实现安全性。如果赌注很高,我不会考虑它,但我不确定你的具体情况是什么,我会考虑进行选择性加密的可能性,只针对重要的事情,特别是因为用户不会’如果您在 Flash 中而不是在浏览器级别这样做,则不会收到关于“不安全”内容与“安全”内容混合的可怕消息。

有一些加密库可以在 Flash 中进行 RSA 加密,同样,您可以在服务器端进行 RSA。可能应该根据安全投资对项目的收益程度来决定这样做的方式。

于 2012-09-23T19:17:29.450 回答