我有一个关于安全性的问题。
我正在使用这篇教程开发 iOS 应用,并且通过 NSUserDefaults 存储已购买的产品。所以我想问:
用户是否可以在越狱的设备上修改 NSUserDefaults 的键和值呢?
非常感谢您的帮助。
Jer
我有一个关于安全性的问题。
我正在使用这篇教程开发 iOS 应用,并且通过 NSUserDefaults 存储已购买的产品。所以我想问:
用户是否可以在越狱的设备上修改 NSUserDefaults 的键和值呢?
非常感谢您的帮助。
Jer
可以的。用户默认设置存储在相对于您的应用程序目录的位置:
./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以后,数据目录(因此是偏好设置属性列表文件)现在位于:
/var/mobile/Containers/Data/Application/<GUID>/Library/Preferences/
是的,使用越狱设备的用户可以轻松修改NSUserDefault
,因为它只是一个位于应用程序沙箱库目录中的plist文件。
您可能希望将安全内容存储在钥匙串中,这比NSUserDefault
更加安全一些。