• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 如何防止损害应用内购买收据?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 06:33:55 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

成功购买后,我将receipt+transactionID 保存到NSUserDefaults。将相同的信息发送到服务器以保存记录。

稍后(按需)当用户想要从我自己的服务器下载内容时,我的应用程序将发送receipt+transactionID 到服务器。它将通过应用程序发送的交易 ID 查找存储的收据,并与 Apple 验证存储的收据和新的收据。如果某些键匹配,则提供可下载的内容。

然而,现在获取NSUserDefaults 并提取receipt+transactionID 并不难。即使我将信息放在钥匙串(keychain)中,也可以从互联网连接中获取收据。

现在如果有人拥有receipt+transactionID,可以向我的服务器发送请求并从任何PC 获取内容。如何在不使用密码学的情况下修补此逻辑?



Best Answer-推荐答案


虽然您可以修补逻辑以使其更难破解,但如果您想要真正的保护,您需要某种密码学。您不需要显式应用它 - 就像从 HTTP 切换到 HTTPS 一样主流。经常会成功。

您需要保护敏感数据的三个地方是设备上、服务器上和传输中。

要保护设备上的数据,请将其存储在 Keychain :毕竟,存储小块敏感数据是将 Keychain 添加到 iOS 上的存储可能性数组的主要目的。

服务器保护是一个很大的话题,已在众多在线和离线出版物中讨论过;出于此答案的目的,我假设您的服务器已得到充分保护。

剩下的就是保护您在设备和服务器之间以及您的服务器和 Apple 服务器之间传输的数据。您可以使用 HTTPS用于实现传输级保护。

请注意,添加所有这些级别的保护并不能使您的数据绝对安全:拥有大量时间和资源的实体(例如不友好国家/地区的政府)可能会发现您的 key - 例如,通过拆卸物理 key 设备,并使用逻辑分析仪检查来自 CPU 的数据。但是,此练习的目的不是实现绝对保护,而是使破坏您的安全方案的成本高得令人望而却步。为此,Keychain 和 HTTPS 的组合应该可以实现使破坏您的保护比合法购买您的内容更昂贵的目标。

关于ios - 如何防止损害应用内购买收据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21908864/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap