有一个很棒的post在 StackOverflow 上关于通过收据验证实现应用内购买。但是,出于安全原因,它警告不要按原样使用该代码。在许多教程甚至 Apple documentation 中都能找到这种情绪.例如,它提到不要这样做:
if (failedValidation) {
exit(173);
}
那太好了,但是您应该如何做这样的事情呢?在此示例中,将验证收据有效或无效,并在无效时退出。
我看到了很多该做和不该做的 list ,但没有太多关于应该做什么的例子或想法。例如使用 opague predicate , 但维基百科没有提到一个具体的例子。
我知道我们不应该都使用相同的代码,但是一些指示(或关于此主题的思考方式)会很有用。我希望有人能够通过这方面的最佳实践来帮助像我这样的初学者。谢谢!
最佳答案
如果您要进行收据验证,那么您可能已经走在了前面。如果您想向某些样板代码添加不透明谓词,您可以这样做:
@property (nonatomic, assign) BOOL opaque;
- (instancetype)init {
...
_opaque = YES;
...
}
- (BOOL)someVerifyMethod {
if (self.opaque) {
...
} else {
// fake block
}
}
但老实说,您可能会等待,看看是否有真正的问题,然后再修复它——这是一个成本/ yield 计算,虽然理论上每个使用相同代码的人都会带来问题,但尚不清楚被利用的风险是特别高。
毫无疑问,对此意见不一,但归根结底,这是一个商业决策,也是一个工程决策。
关于swift - iap 收据验证 : security,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31458194/