gpt4 book ai didi

ios - 为什么要使用我自己的服务器来验证 iOS 收据?

转载 作者:行者123 更新时间:2023-12-01 17:30:54 27 4
gpt4 key购买 nike

我想验证 iOS 收据。

我想我会向 App Store 验证服务器发送收据(https://sandbox.itunes.apple.com/verifyReceipthttps://buy.itunes.apple.com/verifyReceipt)。

但是 Apple 的引用资料说:

It is not possible to build a trusted connection between a user’s device and the App Store directly because you don’t control either end of that connection.

而且apple推荐发回执到我的服务器再发到App Store验证服务器去验证。

( https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html#//apple_ref/doc/uid/TP40010573-CH104-SW1 )

我不明白为什么无论使用 HTTPS 连接,设备和 App Store 之间的连接都不受信任。

最佳答案

您的应用在用户控制的硬件上运行。他们可以物理访问它,并且可以用它做任何他们想做的事情。操作系统不会让用户轻易搞砸事情,但这是可以做到的,而且黑客也会这样做。

您可以在 iOS 设备上验证 iOS 收据。但是您不能确定收据是否真的有效。用户可能已经入侵了设备,让您认为收据是有效的。

I don't understand why a connection between a device and the App Store is not trusted regardless of using HTTPS connection.

HTTPS 无法保护您免受对 iOS 设备具有物理控制权的黑客的侵害。黑客可以在设备上安装不同的 SSL key ,使其能够连接到不同的服务器。

当您的应用程序尝试与 Apple 的服务器通信时,任何网络管理员都可以更改它,以便联系其他服务器而不是 Apple 的服务器。该服务器通常会被拒绝,因为 SSL key 将不受信任...但如果用户控制该设备,他们可以使其信任无效的 SSL key 。

但是,您的服务器由您控制。您的客户无法实际访问它。因此,您的服务器(希望如此!)不会被黑客入侵。这意味着您的服务器可以信任,与设备不同。当您的服务器与 Apple 的服务器建立 SSL 连接时,您就知道您确实在与 Apple 的服务器对话。不是您的用户为了绕过应用内购买而安装的。

因此,如果用户在您的应用中购买了东西……您不希望将所购买的东西存储在应用中。您想将其存储在服务器上,并且该服务器仅在与 Apple 的服务器验证收据后才将购买的数据发送到设备。

如果您不想花钱运行自己的服务器,那么您只需接受任何有几个小时空闲时间的精通技术的人都可以创建假的 iOS 购买收据并让您的设备相信它们是有效的.

关于ios - 为什么要使用我自己的服务器来验证 iOS 收据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23051827/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com