回答
不,对于敏感数据,AsyncStorage不安全。 AsyncStorage只是将数据保存到手机硬盘上的文档中,因此任何有权访问手机文件系统的人都可以读取该数据。当然,这对你来说是否有问题取决于你所说的“感性数据”的含义。
至少在iOS上,由于Apple的沙盒策略,数据只能在写入它的应用程序中使用。这并不能阻止对文件系统具有root权限的越狱iPhone获取他们想要的任何东西,因为AsyncStorage不会对其任何数据进行加密。但一般来说,不要将敏感数据保存到AsyncStorage中,出于同样的原因,您不应在JavaScript代码中对敏感数据进行硬编码,因为它可以轻松地反编译和读取。
还有什么其他存储选项存在于iOS?有没有像你可以使用的内部数据库? –
关于此内容https://stackoverflow.com/a/39112472/4637196 –
我在一个正在处理的项目中遇到了同样的问题,我们使用AsyncStorage的自定义包装器,存储了一些数据,然后我们尝试检索相同的数据......并且它非常简单。
我们通过使用带加密选项的Realm来解决这个问题,它比AsyncStorage更容易,更快,更好的解决方案。
你是如何存储Realm密钥的?我的信念是只能存储硬编码或本地密钥。 – yogiben
我只是想要我的信息被加密,这是一个测试项目,所以我离开它如下: 'let eKey = new Int8Array(64); //使用安全密钥傀儡 'let realm = new Realm({... encryptionKey:eKey});' – XaviMorenoM
您可能需要 1.在应用第一次启动时生成随机密钥。 2.使用诸如react-native-keychain之类的东西将其保存到本机钥匙串。 3.每当你的应用程序启动后,从钥匙扣中获取该密钥 4.使用密钥获得你的领域实例 注意:如果钥匙串被清除,那么你需要吹走领域db。 – duhseekoh
AsyncStorage不适合存储敏感信息。您可能会觉得这很有用:https://github.com/oblador/react-native-keychain
它使用facebook conceal/android keystore将加密数据存储到SharedPreferences
(Android)和iOS上的钥匙串。 (我共同撰写了这个lib)。请务必阅读整个自述文件以了解它提供的内容。
Android上的Base64不是安全的数据存储方式 – odemolliens
@odemolliens您可能没有注意到保存的base64 _encoded_字符串已被*加密*。 – vonovak
我再次阅读源代码,你是对的。但是,如果Base64已经被加密,在Base64中编码有什么好处?欢呼 – odemolliens
对于非常敏感的应用程序或用户数据,你可以尝试在iOS Android和iOS(采用Android共享偏好和iOS钥匙扣)都像https://github.com/oblador/react-native-keychain(使用的iOS钥匙扣)或https://github.com/classapp/react-native-sensitive-info。
他们都有非常流畅的API和直接的方式与react-native link
连接,是一种更安全的方式来保存您想要远离窥探的数据。
从反应本地文档 - https://facebook.github.io/react-native/docs/asyncstorage.html
AsyncStorage是一个简单的,未加密的,异步的,持久的,键值存储系统,是全球性的应用程序。
它不安全,因为它以未加密的形式在设备上存储键值对。
它使用iOS的Keychain和Android的KeyStore来安全地存储数据。
- 1. React Native获取异步存储返回未处理的承诺
- 2. React Native - 异步存储信息被提取后componentWillMount()
- 3. React-native:看起来像是在全球安装了react-native
- 4. react-native-bcrypt:安全PRNG
- 5. 如何使用React Native在iOS中安全地存储数据?
- 6. 使stringWithContentsOfURL异步 - 是否安全?
- 7. 是否有React Native“WEB代码安全防护”?
- 8. 是否安全地存储getContext的值
- 9. React Native - 从异步显示数据AsyncStorage.getItems
- 10. React-native防止函数异步执行?
- 11. React Native在循环内异步调用
- 12. 是否有必要在windows的“react-native init AwesomeProject”上安装Python for react-native?
- 13. HTML5会话存储是否安全?
- 14. SQL存储过程是否安全?
- 15. 如何使用React Native将上下文绑定到异步存储器
- 16. 异步存储无法正常工作设置或继续React Native
- 17. react-native是否支持NSDataDetector?
- 18. 等待异步数据在React或React Native中存储状态的正确方法
- 19. React Native/Redux - 无法访问Redux存储
- 20. 在JSON中存储React-Native组件?
- 21. React Native - 浏览设备本地存储
- 22. ubutnu中的react-native安装
- 23. React Native Redux中存储的内容是什么?
- 24. React Native - 缓存DOM?
- 25. React Native全局变量apikey
- 26. 使用BufferedStream封装NetworkStream进行异步读取是否安全?
- 27. gc.log是否写异步?安全地把NFS挂载gc.log?
- 28. 异步调用是否引入安全漏洞
- 29. 在异步方法中使用ReaderWriterLockSlim是否安全
- 30. 将PropertyChangedCallback标记为异步是否安全?
你可以看看这篇文章:https://stackoverflow.com/questions/45547657/what-is-the-best-way-to-store-private-data-in-react-native –