您的位置:首页 > 移动开发 > IOS开发

ios 内购越狱插件防护策略 iap 更安全

2014-07-30 12:48 741 查看
ap cracker :越狱软件 可以 截获付费请求,并直接返回 付费成功。

iap free : 截获付费请求的同时,还能截获客户端发起的 验证请求 ,返回验证成功的 数据 ,据说 返回的数据 和 官方的数据并不是完全一样,可以识别出来是否作弊,但是不保证永久有效。

针对 iap cracker,iap free , Apple 已经采取了措施,就是 添加了一个 验证接口

文档链接:xcdoc://?url=developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Introduction.html#//apple_ref/doc/uid/TP40010573

接口:

生产环境:
https://buy.itunes.apple.com/verifyReceipt
测试环境:
https://sandbox.itunes.apple.com/verifyReceipt
请求方式:post

HttpBody 为 json数据格式 : {"receipt-data":"订单数据经过Base64编码"}

返回数据

格式验证失败:

{"status":21002, "exception":"java.lang.NullPointerException"}

验证成功:

{"status":0, 其他一些关于订单的 数据信息}

方案有两种:

1、客户端发起网络请求去验证,通过其他手段来判断是否是作弊行为 比如 当前如果没有联网肯定是作弊,字段不完全一样也是作弊

2、把数据发给 自己的 server ,由 server 去验证,验证完后再返回给客户端

利弊都有

第一种延时会短一点但不够安全

第二种很显然 用户体验差一点但更安全一点

第二种方案的话 需要 自己的 server 不能被 伪造 才可做到 足够 安全,可以通过对称加密或签名认证的方案来解决。

其实 一般的游戏道具数据 都是 服务端维护的, 客户端 只需要 把 内购的 receiptData 发给服务器,服务器根据这个 receiptData 就可以完成所有的
数据业务更新 ,把处理过 业务 之后的最新用户状态数据 返回给 客户端就好了 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐