首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iap接收验证:安全性

iap接收验证:安全性
EN

Stack Overflow用户
提问于 2015-07-16 23:15:38
回答 1查看 137关注 0票数 1

StackOverflow上有一个关于使用收据验证实现应用内购买的很好的post。然而,出于安全原因,它警告不要按原样使用该代码。这一观点在许多教程甚至Apple documentation中都能找到。例如,它提到不要这样做:

代码语言:javascript
复制
if (failedValidation) {
    exit(173);
}

这很好,但是你应该如何做这样的事情呢?在此示例中,将验证收据是有效还是无效,并在无效时退出。

我看到了很多“做什么”和“不做什么”的列表,但没有多少关于该做什么的例子或想法。例如,使用opague predicate,但维基百科没有提到一个具体的例子。

我知道我们不应该都使用相同的代码,但是一些指针(或者关于这个主题的一种思考方式)会很有用。我希望有人能够像我这样的初学者手把手地完成这方面的最佳实践。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-07-17 23:18:12

如果你正在做收据验证,你可能走在了曲线的前面。如果你想在一些样板代码中添加不透明的谓词,你可以这样做:

代码语言:javascript
复制
@property (nonatomic, assign) BOOL opaque;
- (instancetype)init {
    ...
    _opaque = YES;
    ... 
}

- (BOOL)someVerifyMethod {
    if (self.opaque) {
    ...
    } else {
    // fake block
    }
}

不过,老实说,在修复它之前,您可能会等着看是否有真正的问题--这是一个成本/收益计算,虽然理论上每个使用相同代码的人都会带来问题,但尚不清楚利用漏洞的风险是否特别高。

毫无疑问,人们对此意见不一,但归根结底,这既是一个工程决策,也是一个商业决策。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31458194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档