1

我刚刚了解了 IAP Cracker 的存在,我正在尝试找出在我的应用程序中验证 IAP 购买的最佳方法。

我无法确定 IAP Cracker 是否适用于“消耗品”购买。如果没有,我没什么好担心的。

这是保护/验证所有购买的一种方法。

http://www.binpress.com/app/inapp-purchase-verification/633#description

感谢您的任何见解!

4

2 回答 2

4

我看了你显示的那个链接,但如果我是你,我不会相信的。任何了解逆向工程和开发的人都可以轻松绕过该方法。任何人都可以轻松地编写一个 hack,它会自动免费为您提供内容。

我不知道验证应用内购买的安全方法,因为我没有使用过它们,但请记住这一点:无论你做得多么安全,一个坚定的黑客都能够绕过它。

于 2012-06-25T00:55:46.017 回答
1

我建议让您的远程服务器进行通信和存储数据。因此,当您通过客户端拨打电话时,请确保将信息发送到远程服务器,然后客户端会收到回叫“是的,购买成功”。现在,当用户实际尝试使用购买时,他们必须调用您的远程服务器,以验证传入的数据是否实际可用。

因此,假设用户购买了“10 个硬币”,您的客户端将“我需要验证”发送到您的服务器,然后您的服务器将其消息发送给苹果并获得它的响应(在这种情况下,我们可以说它是一个“很好”的响应)。然后,您的服务器将用户“*”的“10 个硬币”存储在其数据库中,并将“购买的 10 个硬币”返回给客户端。然后,用户使用 10 个硬币在游戏中进行购买,这会向您的远程服务器发送另一条消息,远程服务器检查数据库并查看用户是否有可用的硬币并采取相应的行动。

这是安全的原因:用户有 0 个硬币,并且“伪造”一条消息说他们想购买您的物品并在消息中“放置”60 个硬币。当远程服务器收到消息时,它会根据它的数据库检查使用的值 (60) 并看到用户没有 60 个硬币,然后它就会使消息失败。

因此,在远程服务器上维护您的所有数据,并让客户端进行网络调用以访问用户拥有的内容/数量。这样,用户可以随心所欲地更改客户端上的数据,但这没关系,因为远程服务器不会与数据匹配,并且会在他们的诡计上出错。

于 2013-03-24T18:43:50.387 回答