用户可以在iOS应用中修改NSUserDefaults键值吗?

我有一个关于安全性的问题.

我正在制作iOS应用程序,在this tutorial之后购买应用程序,我存储了在NSUserDefaults中购买的产品.这就是我想知道的原因:

拥有越狱设备的用户可以修改应用程序的NSUserDefaults密钥和值吗?

非常感谢你,如果你知道它.

最佳答案
是的他们可以.用户默认值相对于您的app目录存储在此处:

./MyAppName.app
./Library/Preferences/com.mycompany.MyAppName.plist

plist文件未加密或签名,因此可以轻松修改:

plutil -convert xml1 com.mycompany.MyAppName.plist
vim com.mycompany.MyAppName.plist

您可以查看iOS密钥链,如@rckoenes所说,或者也可以查看like this open source secure defaults replacement,它提供类似于NSUserDefaults的界面.

更新:

从iOS 8开始,数据目录(以及首选项plist文件)现在位于:

/var/mobile/Containers/Data/Application/<GUID>/Library/Preferences/

Apple Reference Docs

转载注明原文:用户可以在iOS应用中修改NSUserDefaults键值吗? - 代码日志