这适用于tvOS,但iOS也适用。这涉及应用内购买订阅(自动续订(。
苹果表示:
警告 不要从应用程序调用App Store服务器verifyReceipt端点。无法在用户的设备和直接应用商店,因为你无法控制它的两端连接,这使得它容易受到中间人的攻击
如果我使用自己的服务器,中间的男人怎么会更难做到?我的服务器会将收据发送给苹果,获得所有内部字段作为响应,但最终必须将有效/无效的响应发送回我的应用程序,任何人都可以与中间人系统伪造该响应。
那么,为什么使用中间服务器会更好呢?
不应该发回结果有效/无效的响应。您应该考虑订阅的好处来构建API体系结构:后端决定客户端应用程序的内容。
例如,您有一个带有视频库的应用程序。有些视频是免费的,另一些则只能订阅。后端必须发送json,其中每个视频都有一个标志isAvailable(true/false(。如果有可用的内容,json将有URL可供播放。否则,JSON中并没有任何URL可供非订阅用户使用,他只能选择订阅。
只有后端验证订阅收据并决定用户获得的内容量。客户端对用户的订阅一无所知,只依赖于来自服务器的JSON。如果有人试图攻击你,没有订阅他们将一无所获。此外,您可以使用SSL钉扎来保护免受中间人攻击(当然,这不是最终解决方案,但您可以让黑客的生活更加艰难(。