解析保存游戏高分安全

时间:2015-09-09 07:39:55

标签: android security parse-platform

我想将Android游戏的分数保存到te parse.com后端。 所以我将创建一个ParseObject并将其保存在后台:

ParseObject gameScore = new ParseObject("GameScore");
gameScore.put("score", 1337);
gameScore.put("playerName", "Sean Plott");
gameScore.saveInBackground();

现在有人可以反对engeener我的Android应用程序,获取解析客户端密钥和应用程序ID,并为他的用户parse.com后端写下他想要的任何高分? 或者Parse是否已经以某种方式阻止了这种情况?

THX

1 个答案:

答案 0 :(得分:2)

是的,您需要额外的安全性,这些API密钥可能被盗。

混淆是阻止某人对您的代码进行逆向工程的第一步。但是,像API密钥这样的东西通常存储为String,因此它们不会被混淆。没有真正完美的解决方案。无论你做什么,致力于它的人都可以偷走它。但是有一些方法可以使这个过程更加困难

一些例子:

  • 使用NDK
  • 使用加密
  • 隐藏png文件中的数据
  • 设置您的应用程序,将没有API密钥的请求发送到代理服务器以接收请求,将API密钥附加到请求的末尾,发送请求,然后接收并将请求的响应返回给你的申请
  •   

    为了保护您的公钥免受恶意用户和黑客的攻击,请不要将其作为文字字符串嵌入任何代码中。相反,在运行时从片段构造字符串或使用位操作(例如,XOR与其他字符串)来隐藏实际的键。密钥本身不是秘密信息,但您不希望黑客或恶意用户轻易用其他密钥替换公钥。   http://developer.android.com/google/play/billing/billing_best_practices.html

有关该主题的更多信息:

http://www.androidauthority.com/how-to-hide-your-api-key-in-android-600583/ http://www.informit.com/articles/article.aspx?p=2268753&seqNum=4

相关问题:

Best Practice for storing private API keys in Android

How to store a secret API key in an application's binary?