开发框架时,能否将app secret等敏感信息存入info.plist或其他plist?
能否在info.plist或其他plist文件中存储敏感信息?
绝对不建议把app secret这类敏感信息存在plist文件里,核心原因是:
- plist文件属于明文存储的静态资源,只要拿到App安装包,任何人都能通过解压、直接读取的方式获取其中的内容,完全没有安全性可言。
- 哪怕是自定义的plist文件,只要被打包进App Bundle中,同样可以被轻易提取解析,和info.plist的安全级别没有区别。
如果你的框架需要获取这类敏感信息,更安全的实现方式包括:
- 让App端通过代码传参的方式提供:比如在App启动阶段调用框架的初始化方法,将敏感信息作为运行时参数传入,这样信息仅在内存中临时存在,不会被静态存储。
- 要求App端使用Keychain存储敏感信息:框架需要时再从Keychain中读取,Keychain的存储与设备绑定,且加密级别更高,远难于被非法提取。
- 尽量通过服务端间接验证:让App端用secret向服务端换取临时授权token,框架仅使用token完成后续操作,减少敏感信息的暴露场景。
内容的提问来源于stack exchange,提问作者gugapc
相关产品推荐
相关产品推荐

