【发布时间】:2020-05-05 23:54:14
【问题描述】:
这适用于 tvOS,但同样适用于 iOS。这涉及应用内购买订阅(自动更新)。
苹果说:
警告 不要从您的应用程序调用 App Store 服务器 verifyReceipt 端点。 您无法在用户的设备和 App Store 直接,因为你无法控制任何一端 连接,这使得它容易受到中间人攻击。
如果我使用自己的服务器,那么中间人怎么办更难?我的服务器会将收据发送给 Apple,获取所有内部字段作为响应,但最终必须将有效/无效响应发送回我的应用程序,任何人都可以使用中间人系统伪造该响应。
那么为什么使用中间服务器要好得多?
【问题讨论】:
-
这样更好,因为你的应用和你的服务器之间的实现是独一无二的;因此,逆向工程需要更多的工作。您还可以通过与服务器的通信构建额外的加密或验证。最终它仍然可以被打破,但它更难
-
那么应用程序特定的共享密钥(您从 Apple 的 iTunes Connect 获得)是否应该仅驻留在我的服务器上?
-
当然。你的应用中不应该有任何秘密,因为它们很容易暴露
-
这是有道理的。如果没有中间服务器,共享密钥必须在应用程序中的某个地方才能与 Apple 的收据服务器直接通信。谢谢!
标签: ios app-store receipt-validation