2

我正在编写一个 WP7 应用程序,并希望包含使用 Amazon 的 AWS 作为存储服务来共享高分数据的功能。

据我了解,WP7 XAP 文件(目前)是安全加密的,并且不存在已知的手机越狱。但是,鉴于这种“安全”加密可能是暂时的,我想了解这是否/如何违反最佳实践。

AWS 的 dynamoDB 使用可以使用给定帐户数据生成的临时访问令牌,有效期为 36 小时,必须使用任何请求的签名来验证令牌。

我正在考虑将所有访问数据存储在 XAP 文件中,该文件还将生成临时访问令牌和签名。该信息将通过电话和 AWS 之间的 https 请求传递。

我试图制定替代流程,包括将临时令牌计算的生成传递给外部 Web 服务,但是我想不出一种方法来保护这些数据,如果 XAP 文件可访问,这些数据也不会受到同样的损害。

我是否完全错过了最佳实践方法,或者我只是过于谨慎?

谢谢。

4

1 回答 1

1

您将永远无法阻止用户发送虚假分数,这与每个流行游戏都存在非官方作弊应用程序的原因几乎相同。你能做的最好的就是让它变得更难

使用一种简单的方法,客户端将分数直接发送到服务器,无需任何加密。有人可以通过在模拟器上运行应用程序并捕获传出数据包,然后在他的桌面浏览器上打开相同的 URL 来作弊。预计时间:不到 10 分钟,任何知道他可以直接从市场下载 XAP、删除清单并将其部署到模拟器上的人都可以完成。

然后您可以在客户端上添加加密密钥。现在有人必须知道 C# 和 Reflector 才能提取它,但是对于具有这些技能的人来说仍然很容易。

下一级,您可以添加加密密钥并对程序集进行混淆。提取密钥需要 CIL 和 Relector 知识。高技能的开发人员需要 30 分钟到一个小时才能提取密钥,而大多数开发人员需要花费数小时。

最后,您可以添加多个步骤来迷惑入侵者(例如,从服务器下载临时令牌并以某种方式在分数发送过程中使用它)。此外,您可以设计得分系统以使某些分数是非法的(愚蠢的示例:如果最小计分动作获得 2 分,那么如果有人发送一个奇数作为分数,您就知道他在作弊。这个很容易理解出,但你可以制定更复杂的规则)。

无论如何,请记住,您的系统总是容易受到攻击,这只是攻击者需要多长时间才能突破它的问题。如果一个高技能的开发人员需要花费数小时或数天的时间,那么除非您为最优秀的玩家提供一些有价值的奖品,否则您可以放心地假设没有人会费心去做。

于 2012-05-13T08:54:22.243 回答