【问题标题】:Encrypted database on device or cloud stored database?设备上的加密数据库还是云存储数据库?
【发布时间】:2018-04-27 15:28:23
【问题描述】:

我的 Android 应用程序有一个预填充的 SQLite 数据库,我需要进行一些读取以显示 autoCompleteTextView 的元素,然后进行其他一些操作,仅读取数据库。

在过去的几天里,我阅读了 Firebase 的 SQLCipher 和 Cloud Firestore。 SQLCipher 似乎是我正在寻找的东西,但我读到我不能将它与预填充的数据库一起使用。我认为 Firestore(或任何其他云服务)是我唯一的其他解决方案,但我有点担心价格以及 ACTV 上的输入与服务器结果之间可能存在的延迟。

数据库不包含任何用户信息或其他敏感数据,我只是想保护我的工作。我不需要最强的保护。

我可以将 Firestore 与我的 SQLite 数据库一起使用吗?我的问题还有其他解决方案吗?谢谢!

【问题讨论】:

  • 那么您究竟想要保护什么以及为什么?
  • 我想保护数据库中的数据。我知道如果没有保护,任何人都可以访问它,所以起初我考虑加密它,但后来我读到我不能将 SQLCipher 与预填充的数据库一起使用。所以我认为我必须使用云解决方案,但我不知道是否需要它以及 Firestore 是否是我的最佳选择。

标签: android database sqlite google-cloud-firestore sqlcipher


【解决方案1】:

如果您想使用 Firebase,您需要知道有一种方法可以非常简单地使用 Firebase Database Security Rules 来保护您的数据库。

Firebase 实时数据库规则确定谁对您的数据库具有读写权限、您的数据的结构以及存在哪些索引。这些规则存在于 Firebase 服务器上,并始终自动执行。只有在您的规则允许的情况下,才会完成每个读写请求。默认情况下,您的规则设置为仅允许经过身份验证的用户对您的数据库进行完全读写访问。这是为了保护您的数据库免受滥用,直到您有时间自定义规则或设置身份验证。

如果您想使用新的 Firestore 版本(目前处于测试版),请查看Secure Data in Cloud Firestore 官方文档以获取更多信息。

另外需要注意的是FirebaseFirestore 也可以提供offline capabilities。因此,即使您的应用程序暂时失去网络连接,这些应用程序也能正常工作。所以不需要其他数据库来实现这一点。

另外需要注意的是,Firebase 可以提供Anonymously Authenticatin

作为结论,Firebase 可以为您提供安全性,即使您的应用包含或不包含任何用户信息或其他敏感数据。

【讨论】:

  • 谢谢!我肯定会在接下来的几天里尝试 Firestore。使用测试版有什么问题吗?
  • 有没有办法添加我的预填充数据库或快速将我的数据添加到 Firestore?
  • 据我测试,我没有遇到任何问题,但您可能知道,随着产品的成熟,功能可用性和对产品集成和平台的支持将继续改进。请注意,没有魔术按钮可以让您将实际数据库转换为 Firebase,您需要自己动手。请记住,Firebase 是一个 NoSQL 数据库,它的结构是一对键和值。如果您将数据添加到 Firebase,我相信您会发现其他非常有用的功能。
  • 您也可以等待其他答案,但如果您认为我的回答对您有帮助,请考虑接受。谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-04-07
  • 2018-12-15
  • 2011-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多