我有一个关于安全的问题。
我正在按照本教程制作一个带有应用内购买的 iOS 应用,并将购买的产品存储在 NSUserDefaults 中。这就是为什么我想知道:
具有越狱设备的用户可以修改应用程序的 NSUserDefaults 键和值吗?
如果您知道的话,非常感谢。
杰尔
我有一个关于安全的问题。
我正在按照本教程制作一个带有应用内购买的 iOS 应用,并将购买的产品存储在 NSUserDefaults 中。这就是为什么我想知道:
具有越狱设备的用户可以修改应用程序的 NSUserDefaults 键和值吗?
如果您知道的话,非常感谢。
杰尔
是的他们可以。用户默认值相对于您的应用程序目录存储在此处:
./MyAppName.app
./Library/Preferences/com.mycompany.MyAppName.plist
plist 文件未加密或签名,因此可以轻松修改:
plutil -convert xml1 com.mycompany.MyAppName.plist
vim com.mycompany.MyAppName.plist
正如@rckoenes 所说,您可以查看 iOS 钥匙串,也可以查看类似这个开源安全默认替换的东西,它提供了一个类似于NSUserDefaults
.
从 iOS 8 开始,数据目录(以及首选项 plist 文件)现在位于:
/var/mobile/Containers/Data/Application/<GUID>/Library/Preferences/
即使没有越狱设备的用户也可以修改 plist...
是的,拥有越狱设备的用户可以轻松修改,NSUserDefault
因为它只是应用程序沙箱库目录中的 plist 文件。
您可能希望将安全的东西存储在钥匙串中,这比NSUserDefault
.