THJ*_*ith 5 iphone objective-c in-app-purchase ipad ios
我在这里查看Apple的Inification Purchases验证控制器补丁:https://developer.apple.com/library/ios/#releasenotes/StoreKit/IAP_ReceiptValidation/_index.html
我计划实现服务器验证,但不需要立即响应.
他们的新代码的异步部分是绝对必要的.它是否优于天真的服务器端验证?
如果我可以立即使用解析和检查并获得好处,那就太棒了.
谢谢!
编辑:没有一些代码,这个问题感觉有点空:
我正在谈论改变主要的verifyPurchase函数只包含:
- (BOOL)verifyPurchase:(SKPaymentTransaction *)transaction;
{
return [self isTransactionAndItsReceiptValid:transaction];
}
Run Code Online (Sandbox Code Playgroud)
...并摆脱客户端 - >服务器帖子.我是否仍然容易受到最近的黑客攻击?
查看代码后,您的问题更有意义。
所讨论的攻击是某人出示其他人的有效收据。收据数据中似乎没有任何内容将其与设备/购买者联系起来。您可以通过检查购买日期来在一定程度上缓解这种情况(但前提是设备具有准确的时间,且时间在用户的控制之下)。
(如果客户端生成必须与收据匹配的 256 位随机数,则此攻击将不起作用。攻击者显然可以破解二进制/PRNG,但在任何情况下您都已经失败了。)
顺便说一句,代码有很多问题:
-isTransactionAndItsReceiptValid:,但内容只有在网络恢复后才会解锁。如果连接失败,收据将永远无法重新验证,因此用户的钱将实际上进入黑洞。-connection:didReceiveData:返回完整的收据数据(由于碎片,情况可能并非如此,但由于 Apple 控制服务器实现,因此可能可以保证)。| 归档时间: |
|
| 查看次数: |
989 次 |
| 最近记录: |