美文网首页AppStore
苹果App内购的一些坑

苹果App内购的一些坑

作者: Oceanj | 来源:发表于2018-07-24 11:21 被阅读0次

苹果的应用内购凭证校验步骤见官网:苹果app内购凭证校验,苹果的凭证验证有两种:

  1. Validating Receipts With the App Store 通过访问苹果接口进行验证。
  2. Validating Receipts Locally 本地代码解码进行验证

可以参考一个第三方应用内购库RMStore,这个库帮你省去了很多内购接入的麻烦。


其中第二种验证方式存在被破解的风险,因为这种验证是本地进行的,破解者可以通过伪造凭证进行破解,甚至通过一些内购破解插件来破解,所以安全考虑第一种方式是必须的,第二种验证可以同时存在(先进行本地,再请求服务器验证)。

1.这样就安全了吗?

一般还需要苹果的付款订单和我们自己后台的订单进行一对一约束,一次付款只能成功一次后台订单,这个需要自己后台人员去做限制,一对多和多对一都是不正确的。

2.用户付款成功了,但是苹果服务器校验失败了怎么办?

验证过程中如果由于网络问题失败或者苹果服务异常等原因导致验证失败,比如返回的报文格式不是json格式,则需要提供重试功能给用户重试,或者将凭证保存到后台,后台人员通过第一种方式重新验证。


3.漏洞

由于个人经验不足,对苹果校验的安全性没有太过关注,以致于作弊者破解了我们的苹果内购;我已经被这个折腾了一个月[抓狂],作弊者通过很多方式跳过苹果的付款步骤直接获得虚拟产品,达到免费获取虚拟产品的目的。

其中最让人胆寒的方式就是:作弊者可以自主伪造一个苹果凭证并且通过了苹果的服务器验证。

4.Oh my God,那应该如何修补这个漏洞?

对于这种伪造的凭证,虽然能通过苹果校验,也就是说返回的json的状态是成功的状态(state=0),但是仔细察看会发现数据是有缺失的,我们注意到返回的json报文都会有in_app节点,这个节点是一个数组,数组里包含字典,而这个字典一般会记录本次充值的相关信息,比如充值的产品id,充值的trasaction_id,正常的凭证校验返回的in_app节点是有数据的,而伪造的凭证校验返回的json中in_app节点是空的,我们可以根据这个判定是否是非法凭证。

这可能是苹果凭证校验的一个漏洞,而作弊者恰恰利用了这个漏洞。

如果想知道苹果内购返回的josn格式,请前往官文档

最后总结一句:天外有天,人外有人,与天斗,其乐无穷:与地斗,其乐无穷;与人斗,其乐无穷,与黑客斗其乐无穷。


相关文章

  • 苹果内购In-app purchase

    关于苹果内购(IAP)的一些问题以及那些坑: 最近在研究苹果内购功能,所以,在网上找了一些资料,进行学习。但是,内...

  • 苹果App内购的一些坑

    苹果的应用内购凭证校验步骤见官网:苹果app内购凭证校验,苹果的凭证验证有两种: Validating Recei...

  • ios-内购(IAP)

    StoreKit 框架内购:在ios中专指苹果内购,在app内购买商品时使用苹果的支付方式进行购买;如果在app内...

  • 内购(IAP)详解

    一、苹果内购和Apple Pay的区别 1、内购(In App Purchase) 如果您想要在 app 内解锁特...

  • Flutter 接入iOS苹果内购支付踩坑过程

    如何配置内购商品 坑1:项目与价格配置 苹果内购支付和我们平时接入支付宝或者微信支付有很大的差别。 苹果内购支付的...

  • iOS 苹果内购(In-App Purchase)

    内购简介 IAP 全称:In-App Purchase,是指苹果 App Store 的应用内购买,是苹果为 Ap...

  • 苹果APP内购

    内购?在App内购买非实物产品(如游戏币,电子书,视频等虚拟产品)需要走内购流程,苹果这里面抽走30%盈利。 内购...

  • 苹果内购的坑

    苹果的凭证查询的数据如果是消耗性只能查询一次,如果是订阅型也会有时效性,订阅型如果是同一组会保留一个原始订单号(第...

  • 六. 内嵌广告

    广告也属于App创收的一种方式, 你在App内展示广告, 苹果会付一些广告费给你, 并且还会减少一些对你App内购...

  • 苹果内购流程

    苹果内购是指在Apple Store的应用内购买,是苹果为App内购买虚拟商品或服务提供的一套交易系统。一. 内购...

网友评论

    本文标题:苹果App内购的一些坑

    本文链接:https://www.haomeiwen.com/subject/yteemftx.html