我对安全性有疑问。
我正在使用this tutorial之后的应用内购买制作iOS应用,并存储在NSUserDefaults中购买的产品。这就是我想知道的原因:
拥有越狱设备的用户可以修改应用的NSUserDefaults键和值吗?
非常感谢你,如果你知道的话。
耶
答案 0 :(得分:19)
是的,他们可以。用户默认值相对于您的应用程序目录存储在此处:
./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/
答案 1 :(得分:7)
即使没有Jailbroken设备的用户也可以修改plist ......
答案 2 :(得分:4)
是的,拥有jailbroke设备的用户可以轻松修改NSUserDefault
,因为它只是应用程序沙箱库目录中的plist文件。
您可能希望在钥匙串中存储安全内容,这比NSUserDefault
更安全。