我正在构建一个我打算通过Mac App Store分发的应用程序。我将使用应用内购买来允许用户购买他们可以在应用中消费的“积分”。我将使用Apple的IAP API处理货币交易方面的问题,但我想知道如何安全地存储当前的信用余额。
显然,我想避免“聪明”的用户弄乱我的应用程序在磁盘上的文件以增加信用数量,所以至少我需要加密这个文件。但即使这还不够,因为用户只需从备份副本恢复即可恢复其余额。
一个显而易见的选择是运行我自己的网络服务器并让应用程序连接到每个事务的那个,但这听起来很麻烦。我已经为iOS寻找虚拟货币服务(因为这在iOS应用程序中更为常见),但大多数(全部?)都有一些跨营销的角度,迫使我在我的应用程序中放置广告不想要。我很乐意用简单的API支付服务费用,只要它对我的用户完全透明。例如。我不希望我的用户必须在某个第三方网站上注册帐户。
我有什么选择?有什么建议吗?
答案 0 :(得分:1)
如果您确实需要任何真正的安全性,则需要使用服务器。
无论您在客户端进行何种加密,用户始终可以重置应用程序的状态,然后添加IAP的收据,然后您将验证该收据。简而言之,他们总是可以擦除他们消耗这些积分的手机内存。
如果他们购买的只是在应用程序中(即它只是编程解锁的功能)并且不是由外部服务器/服务提供的,那么充满动力的用户(可能使用越狱手机)可以简单地将您的代码调整为提供该功能。因此,在这种情况下,您无法获得真正的安全性。你最好的选择就是混淆。