小编典典

NSUserDefaults在iOS 8,9上的安全性如何?

swift

应用内购买编程指南建议您可以在NSUserDefaults
此处继续进行应用内购买。但是我发现这篇文章说它是不安全的,并且其中的数据很容易访问和修改:

NSUserDefaults以二进制格式存储在plist中,没有加密,并且存储在应用程序的目录中。这意味着任何用户,甚至“最讨厌的”用户,都可以在5分钟的时间内修改NSUserDefaults。

如果确实如此,那么用户可以轻松免费免费获得作为应用程序内购买提供的任何内容,并且可以使用永久保存NSUserDefaults

本文对iOS 8,9仍然正确吗? 如果是这样,您如何坚持应用内购买?我喜欢一些简单的解决方案。我不(也不想)验证收据等。


阅读 279

收藏
2020-07-07

共1个答案

小编典典

强烈建议不要保存敏感数据(UserDefaults例如应用内购买)或明显的数据(例如密码)。甚至高分之类的数据也可以更好地保存在钥匙串中,这样人们就不会作弊。

我认为Apple文档的一部分已经过时,应该更改,因为UserDefaults不是存储敏感数据的方式,因为在应用程序购买中绝对是IMO。

只需将基本数据保存为UserDefaults语言设置,音频设置等即可。

如果要保存敏感数据,则应使用钥匙串。我认为钥匙串API的使用非常棘手,但是GitHub上有一个很好的助手可以使用,它具有CocoaPods和SwiftPackageManager支持,并由其作者积极维护。

https://github.com/kishikawakatsumi/KeychainAccess

我曾经使用过另外2个项目,但现在似乎不再受支持

https://github.com/jrendel/SwiftKeychainWrapper

https://github.com/matthewpalmer/Locksmith

钥匙串要记住的一件事是,即使您删除应用程序,数据仍然会保留,这实际上是一件好事。

所有功劳归其各自包装的作者。

希望这可以帮助

2020-07-07