不安全的数据存储
保护本地数据
不安全的数据存储 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。
什么是本地数据
移动应用会在设备上存储数据:设置、缓存内容、令牌,有时还包括个人信息。
这些本地数据的存储方式决定了攻击者是否能够读取它们。
核心风险
不安全的数据存储是指将敏感数据保存在可以以明文读取的位置。
如果设备丢失、被盗或已获取最高权限,这些数据就会暴露。
常见的存储位置
应用会在多个位置保存数据:
- 键值偏好设置
- 本地数据库,例如 SQLite
- 普通文件
- 日志和缓存
如果使用不当,每种位置都可能造成数据泄露。
明文偏好设置
将令牌存储在明文偏好设置中存在风险:
prefs.putString("auth_token", token)在已获取最高权限的设备上,可以读取这个文件。敏感值绝不能未经加密就存放在这里。
使用密钥库和钥匙串
每个平台都提供了安全且由硬件支持的机密存储:
- Android 密钥库
- iOS 钥匙串
请将令牌和密钥存储在这里,而不是普通文件中。
加密敏感数据
如果必须自行存储敏感数据,请先对其进行加密。
请使用平台提供的加密存储,让密钥受到设备安全硬件的保护。
警惕日志
日志记录是一个隐蔽的泄露来源。
log("User token: " + token)其他工具可能读取日志,或者日志可能被保存在崩溃报告中。切勿记录机密信息。
留意剪贴板
将密码或令牌复制到剪贴板会使其暴露给能够读取剪贴板内容的其他应用。
请避免将机密信息放入剪贴板,或者尽快清除这些信息。
缓存和备份
敏感数据可能通过自动备份以及图像或网页缓存泄露。
请将机密文件排除在备份之外,并避免缓存敏感页面。
少存储数据
最安全的数据,就是从未存储过的数据。
仅在需要期间保留敏感项目,并在使用后将其删除。存储的数据越少,可能泄露的数据就越少。
纵深防御
结合多种保护措施:安全存储、加密、不在日志中记录机密信息,以及尽量缩短保留时间。
如果某一层失效,其他层仍能保护数据。这就是纵深防御。
快速检查
移动设备上的身份验证令牌应存储在哪里?
回顾
不安全的存储会使数据在设备丢失或已获取最高权限时暴露。请使用密钥库/钥匙串,加密敏感数据,避免将机密信息放入日志和剪贴板,将其排除在备份之外,并尽可能少地存储数据。
常见问题解答
「不安全的数据存储」课时是免费的吗?
是的 — 「不安全的数据存储」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。
「不安全的数据存储」这节课中我会学到什么?
保护本地数据 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cyber Security Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「不安全的数据存储」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cyber Security Academy 课中编写并运行代码吗?
能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。