我正在写一个WP7应用程序,并希望包括功能,以分享高分数据使用亚马逊的亚马逊网络服务作为存储服务。
据我所知,XAP文件(目前)是安全加密的,目前还不存在WP7越狱的情况。然而,考虑到这样的“安全”加密可能是暂时的,我想知道这是否/如何违反最佳实践。
亚马逊网络服务的dynamoDB使用临时访问令牌,可以使用给定的账户数据生成,有效期为36小时。任何请求都必须使用签名进行验证。
我正在考虑将所有访问数据存储在XAP文件中,该文件还将生成临时访问令牌和签名。该信息将通过https请求在手机和AWS之间传递。
我正在尝试制定替代流程,包括将临时令牌计算的生成传递给外部way服务,然而,我想不出一种方法来保护这些数据,如果XAP文件是可访问的,它将不会受到类似的危害。
我是完全错过了最佳实践方法,还是过于谨慎了?
谢谢。
发布于 2012-05-13 16:54:22
你永远无法阻止用户发送虚假分数,这与每个流行游戏都存在非官方作弊应用程序的原因是一样的。你能做的最好的事情就是让它变得更难。
通过一种简单的方法,客户端直接将分数发送到服务器,而不需要任何加密。有人可以通过在模拟器上运行应用程序并捕获传出的数据包,然后在他的桌面浏览器上打开相同的URL来作弊。估计时间:不到10分钟,任何知道可以直接从市场下载XAP、删除清单并将其部署到仿真器上的人都可以完成。
然后,您可以在客户端上添加加密密钥。现在有人必须了解C#和Reflector才能提取它,但对于拥有这些技能的人来说,这仍然很容易。
下一级,您可以添加加密密钥并对程序集进行模糊处理。需要CIL和Relector的知识才能提取密钥。对于一个高技能的开发人员来说,提取密钥需要30分钟到一个小时,而对于大多数开发人员来说,则需要数小时。
最后,您可以添加多个步骤来迷惑入侵者(例如,从服务器下载一个临时令牌并以某种方式在分数发送过程中使用它)。此外,您可以设计评分系统,使某些分数是非法的(愚蠢的示例:如果最小的评分操作获得2分,那么如果有人发送一个奇数作为分数,您就知道他作弊了。这个很容易理解,但你可以制定更复杂的规则)。
无论如何,要记住你的系统总是脆弱的,这只是一个攻击者需要多长时间才能攻破它的问题。如果一个高技能的开发人员需要几个小时或几天的时间,那么除非你给最好的玩家提供一些有价值的奖励,否则你可以有把握地认为没有人会费心这么做。
https://stackoverflow.com/questions/10567425
复制相似问题