首页 > 解决方案 > 为什么使用 UserDefaults 在 iOS 上存储敏感信息不安全?

问题描述

我对 iOS swift 比较陌生,但据我所知

  1. 用户无法访问或修改我的 iOS 应用程序的UserDefaults

  2. 其他应用程序无法访问或修改我的 iOS 应用程序的UserDefaults

最多,在中找到的信息UserDefaults会被删除。但它不能被第三方自由阅读或修改。

那么在这里存储敏感信息到底有什么危险呢?有人可以举一个合理的攻击示例,说明由于使用UserDefaults而不是Keychain Services在 iOS 平台上会暴露重大软件漏洞吗?

标签: iosswiftuserdefaults

解决方案


首先,加密 - UserDefaults 不使用开箱即用的加密。

其次,在任何设备上,用户都可以访问文件系统,特别是您的应用程序容器,因此使用 iExplorer 应用程序访问 UserDefaults 并访问代表用户默认值的整个 plist - 更改它并提取信息 - 不受恶意用户的保护。

第三,您在应用程序中使用的第三方库能够访问您的“标准”用户默认值或猜测您用于提取/覆盖信息的某些容器名称。

可能还有更多原因,但我想说这些是主要原因


推荐阅读