ios - 为什么使用 UserDefaults 在 iOS 上存储敏感信息不安全?
问题描述
我对 iOS swift 比较陌生,但据我所知
用户无法访问或修改我的 iOS 应用程序的
UserDefaults
其他应用程序无法访问或修改我的 iOS 应用程序的
UserDefaults
最多,在中找到的信息UserDefaults
会被删除。但它不能被第三方自由阅读或修改。
那么在这里存储敏感信息到底有什么危险呢?有人可以举一个合理的攻击示例,说明由于使用UserDefaults
而不是Keychain Services
在 iOS 平台上会暴露重大软件漏洞吗?
解决方案
首先,加密 - UserDefaults 不使用开箱即用的加密。
其次,在任何设备上,用户都可以访问文件系统,特别是您的应用程序容器,因此使用 iExplorer 应用程序访问 UserDefaults 并访问代表用户默认值的整个 plist - 更改它并提取信息 - 不受恶意用户的保护。
第三,您在应用程序中使用的第三方库能够访问您的“标准”用户默认值或猜测您用于提取/覆盖信息的某些容器名称。
可能还有更多原因,但我想说这些是主要原因
推荐阅读
- c++ - 如何为 QPlainTextEdit 设置水平溢出?
- java - ConcurrentModificationException 从迭代器中删除元素
- shell - 带有heredoc的SSH无法修改变量
- php - Laravel-Pdf 将语言设置传递给视图 niklasravnsborg/laravel-pdf
- sql - 如何在 Oracle Database 12.1 中将单行转换为列以转换为 JSON?
- android - 如何为我的自定义视图绘制元素添加涟漪效果?
- database - DynamoDB - 设计一对多关系
- r - 汇总牺牲最小分辨率的数据(根据滞后值的总和创建不同大小的组)
- stored-procedures - 返回 Teradata 存储过程中的活动日志
- java - Optional.map 中的 Integer::toString