用户可以在iOS应用中修改NSUserDefaults键值吗?
我有一个关于安全性的问题。
我正在按照本教程购买应用程序中的iOS应用程序,并且我存储了在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所说,或者像这个开源安全默认值替换 ,它提供类似于NSUserDefaults
的界面。
更新:
从iOS 8开始,数据目录(以及首选项plist文件)现在位于:
/var/mobile/Containers/Data/Application//Library/Preferences/
Apple参考文档
即使没有Jailbroken设备的用户也可以修改plist …
是的,拥有jailbroke设备的用户可以轻松修改NSUserDefault
因为它只是应用程序沙箱库目录中的plist文件。
您可能希望将安全的东西存储在钥匙串中,这比NSUserDefault
稍微安全NSUserDefault
。