如何配置iOS应用程序(Swift)以使用数据库秘密来访问数据库?

时间:2017-06-02 18:41:20

标签: ios firebase firebase-realtime-database

我正在构建iOS应用并使用Firebase数据库作为后端。该应用没有任何用户。下载应用程序的任何用户都应该可以访问Firebase后端(某些功能要求我访问后端进行读写)。但是,我不想公开这个firebase。目前,我设置Firebase安全规则的方式如下:

{
  "rules": {
    ".read": "auth == null",
    ".write": "auth == null"
  }
}

显然,这会带来安全问题!同样,我没有任何“用户”来创建auth uid以使其成为更安全的数据库。

我想要的是:

  • 下载iOS应用的用户可以访问后端。任何人都可以在后端“阅读”或“写”。
  • 没有其他人可以访问数据库。

有办法做到这一点吗?我知道在非iOS环境中只使用数据库秘密就可以了,但是我该如何为iOS应用做到这一点?

1 个答案:

答案 0 :(得分:1)

你不能!

好的,你可能正在寻找比这更全面的解释:

  1. 我们没有提供任何允许您在客户端上提供数据库机密的解决方案,因为坦率地说,一个坏的角色从客户端提取这些值是相当微不足道的。

  2. 此外,说“嗯,让我们只允许iOS客户端访问我的数据的任何部分”是一个相当糟糕的安全漏洞,因为对于有人搞乱他们的客户并让它做你做的事情来说相当容易不打算这样做。 (或者创建自己的客户端,让它看起来像一个有效的iOS设备,然后让它在数据库端做各种不好的事情。)

  3. 作为一般规则,您希望实现安全规则,就像任何进入的客户端请求可能不值得信任一样。这可能意味着添加比原先预期更复杂的安全规则,但从长远来看,你会更好。