PHP 的 Firebase Admin SDK 是隐藏 Firebase 凭据的有效方法吗?
Is the Firebase Admin SDK for PHP an effective way to hide Firebase credentials?
到目前为止,我了解到 Firebase 的 Security Rules 在保护我们的数据安全方面发挥着重要作用,无论我们使用的是什么平台。但我发现,如果开发人员以可以在客户端脚本上轻松看到 firebase 凭据的方式构建 Web + JavaScript 组合和其他实现,则它们可能会完全暴露在风险中。
谢天谢地,Firebase 支持 REST API's in a variety of languages which can mitigate the risk, somehow. For this purpose, I took a look at Kreait's Firebase Admin SDK for PHP 我正在创建的 Web 数据管理门户。
这是 PHP 的 Firebase Admin SDK 的简单 demo。
我发现这个库的以下优点是:
- Firebase 凭据写在后端脚本中,它们隐藏在前端客户端中
- 查询和数据库操作和实现对客户端隐藏
- 后端支持 Firebase 实时数据库、身份验证和用户管理
我的问题是:
- 我的 firebase 凭据真的安全吗,使用这种方法而不是将它放在普通的 javascript 文件中时,它不会向全世界广播吗?
- 是否有其他方法可以使 firebase 凭据和数据更安全(除了加密数据、通过 REST 实施和适当结构的安全规则将它们隐藏在后端脚本中)?
提前感谢您的意见和建议。
在前置应用程序中公开 API 密钥或项目 ID 等信息没有安全风险(请参阅 https://firebase.google.com/docs/web/setup,这是推荐的程序)- 您的 Web 应用程序只能做允许当前经过身份验证的用户执行此操作。
当然,存在安全规则未明确定义的风险,但后端应用程序也是如此 - 一个愚蠢的例子:当您在服务器上创建无密码帐户时,任何人都可以登录使用该帐户 ^^.
关于 Admin SDK:它们的主要目的是执行管理性 and/or 后端任务。如果您将业务逻辑从客户端(= 浏览器)转移到后端,您将失去许多 Web 库提供的开箱即用的功能。您将不得不重新实现功能,将数据从前端传递到后端再返回……我认为这不值得这么麻烦。
所以,我的建议是:不要担心在浏览器中查看 JS 代码时可见的配置片段,并广泛测试您的安全规则,最好使用自动化测试套件,您应该只是很好。
到目前为止,我了解到 Firebase 的 Security Rules 在保护我们的数据安全方面发挥着重要作用,无论我们使用的是什么平台。但我发现,如果开发人员以可以在客户端脚本上轻松看到 firebase 凭据的方式构建 Web + JavaScript 组合和其他实现,则它们可能会完全暴露在风险中。
谢天谢地,Firebase 支持 REST API's in a variety of languages which can mitigate the risk, somehow. For this purpose, I took a look at Kreait's Firebase Admin SDK for PHP 我正在创建的 Web 数据管理门户。
这是 PHP 的 Firebase Admin SDK 的简单 demo。
我发现这个库的以下优点是:
- Firebase 凭据写在后端脚本中,它们隐藏在前端客户端中
- 查询和数据库操作和实现对客户端隐藏
- 后端支持 Firebase 实时数据库、身份验证和用户管理
我的问题是:
- 我的 firebase 凭据真的安全吗,使用这种方法而不是将它放在普通的 javascript 文件中时,它不会向全世界广播吗?
- 是否有其他方法可以使 firebase 凭据和数据更安全(除了加密数据、通过 REST 实施和适当结构的安全规则将它们隐藏在后端脚本中)?
提前感谢您的意见和建议。
在前置应用程序中公开 API 密钥或项目 ID 等信息没有安全风险(请参阅 https://firebase.google.com/docs/web/setup,这是推荐的程序)- 您的 Web 应用程序只能做允许当前经过身份验证的用户执行此操作。
当然,存在安全规则未明确定义的风险,但后端应用程序也是如此 - 一个愚蠢的例子:当您在服务器上创建无密码帐户时,任何人都可以登录使用该帐户 ^^.
关于 Admin SDK:它们的主要目的是执行管理性 and/or 后端任务。如果您将业务逻辑从客户端(= 浏览器)转移到后端,您将失去许多 Web 库提供的开箱即用的功能。您将不得不重新实现功能,将数据从前端传递到后端再返回……我认为这不值得这么麻烦。
所以,我的建议是:不要担心在浏览器中查看 JS 代码时可见的配置片段,并广泛测试您的安全规则,最好使用自动化测试套件,您应该只是很好。