用于PHP的Firebase Admin SDK是否是隐藏Firebase凭据的有效方法?

时间:2017-10-23 05:43:07

标签: php rest firebase firebase-authentication firebase-security

到目前为止,我已经了解到Firebase的Security Rules在保持数据安全方面发挥着重要作用,无论我们使用哪个平台。但是我发现,如果开发人员以一种可以在客户端脚本上轻松看到firebase凭据的方式构建它们,那么Web + JavaScript组合和其他实现可能纯粹面临风险。

值得庆幸的是,Firebase以各种语言支持REST API's,可以某种方式降低风险。为此,我查看了Kreait's Firebase Admin SDK for PHP我正在创建的Web数据管理门户。

以下是适用于PHP的Firebase Admin SDK的简单demo

我为此库找到的以下优点是:

  1. Firebase凭据写在后端脚本上,它们隐藏在前端客户端
  2. 查询和数据库操作及实现对客户端隐藏
  3. 拥有对Firebase实时数据库,身份验证和用户管理的后端支持
  4. 我的问题是:

    1. 我的firebase凭据是否真的安全,使用这种方法时不会向全世界播放,而不是仅仅将其放入普通的javascript文件中?
    2. 还有其他方法可以使firebase凭据和数据更安全(除了加密数据,通过REST实现和结构合理的安全规则将它们隐藏在后端脚本中)?
    3. 提前感谢您的意见和建议。

1 个答案:

答案 0 :(得分:1)

在面向前端的应用程序中公开API Key或Project ID等信息时没有安全风险(请参阅https://firebase.google.com/docs/web/setup,这是建议的过程) - 您的Web应用程序只能执行当前经过身份验证的用户所允许的操作做。

当然存在安全规则没有明确定义的风险,但是后端应用程序的情况也是如此 - 一个愚蠢的例子:当您在服务器上创建无密码帐户时,任何人都可以使用该帐户登录^ ^。

关于Admin SDK:它们的主要目的是执行管理和/或后端任务。如果将业务逻辑从客户端(= Browser)转移到后端,则会丢失Web库提供的大量功能。您将不得不重新实现功能,将数据从前端传递到后端并返回...我认为这不值得麻烦。

所以,我的建议是:不要担心在浏览器中查看JS代码时可见的配置剪切,并广泛测试您的安全规则,最好是使用自动测试套件,你应该没问题

相关问题