我计划使用应用内购买来解锁我的应用程序中的一些功能。执行此操作的最安全方法是什么?
最初我计划在NSUserDefaults中设置一个布尔值
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isPro"];
但我真的不确定是否有可能通过“黑客”来设置这个值(因为NSUserDefaults是由iOS管理的,而不是直接由应用程序管理),这样用户就不必为了获得完整版而进行应用内购买。
处理此问题的最佳实践是什么?
发布于 2013-01-03 20:31:42
是的,修改应用程序首选项相对容易。但这真的很重要吗?我敢打赌,任何愿意打开他们的iPhone文件系统并修改配置文件以节省一两个quid的人,都不是那种在无法做到这一点的情况下倾向于花钱的人。
发布于 2013-01-03 20:53:22
通过Obfuscation实现安全性是最简单的方法(例如,不要将变量命名为"isPro“,或许也不要让它的值是一个简单的BOOL,而是让它成为某个”神奇“整数。这不是万无一失的,但却是另一个通往崩溃的减速带。
作为使用NSUserDefaults的替代方案,您可以将文件保存到应用程序文件系统中,然后在应用程序启动时检查其内容。
不过,我不确定是否值得花时间和麻烦。
发布于 2013-01-03 20:21:50
您可以将其保存在钥匙链中,但在越狱设备上也很容易读取和更改。所以你应该加密数据。通过扫描二进制文件,确保加密密码不会在你的应用程序中轻易找到。
https://stackoverflow.com/questions/14138730
复制相似问题