是否可以检索 Firebase Cloud Function 源代码?

Posted

技术标签:

【中文标题】是否可以检索 Firebase Cloud Function 源代码?【英文标题】:Is it possible to retrieve Firebase Cloud Function source code? 【发布时间】:2017-12-31 02:25:35 【问题描述】:

我正在编写一些 Firebase 云函数,但我需要隐藏私钥,包括 Firebase 项目管理员。

如果我将此密钥嵌入到我的源代码中并自己上传代码,任何人都可以检索源代码并因此检索密钥吗?通过 Firebase 还是 Google?

非常感谢

【问题讨论】:

这能回答你的问题吗? Get code from firebase console which I deployed earlier 【参考方案1】:

准确回答您的问题:是的,他们可以

一步一步实现就是比较简单

    进入GCP Functions页面 选择要检查的函数 点击源代码(从那里您应该能够看到该函数使用的所有文件和代码),或者; 点击变量(从那里你应该看到你的函数使用的所有环境变量)

如果人们能够看到环境变量对您来说是个问题,这里有一种方法可以让事情变得更安全

您可以在已有的基础上构建并开始加密这些密钥,然后再将它们添加到代码库或环境变量中。之后,您可以使用KMS 等加密服务在运行时解密这些密钥。在 KMS 本身中,您可以有更严格的政策,只允许您自己和该功能访问该服务。

GCP 的另一项优质服务是Google's Secret Manager

【讨论】:

如何从主控制台的功能仪表板访问 GCP 功能?【参考方案2】:

也许设置一个环境变量:

Oficial Doc

【讨论】:

我在文档中没有看到任何提及它,在底部有几个额外的命令,但 getEnviromentals 没有...我在其他地方使用过环境变量,例如Heroku,通过这种经验,我可以告诉你不能让他们回来,这就是为什么相对安全,这样不同的人(例如使用亚马逊)可以使用个人密钥进行本地开发,然后生产获得特殊密钥。请注意,安全性的一部分也是轮换密钥。【参考方案3】:

您的应用用户永远无法访问您的 Cloud Functions 代码。

但是,您的 Firebase 项目的协作者可以访问它。见Get code from firebase console which I deployed earlier

我认为没有任何方法可以向协作者隐藏此类配置值。由于他们可以查看/部署代码,并且代码需要访问此私钥,因此根据定义,他们也可以访问该密钥。

【讨论】:

以上是关于是否可以检索 Firebase Cloud Function 源代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Cloud Firestore 上的对象中检索值?迅速

在应用程序初始启动后,如何快速检索 Firebase Cloud Messaging 的消息传递令牌?

是否可以使用 Firebase Cloud Functions on Realtime 数据库创建覆盖多个节点的原子事务?

是否可以在没有分析部分的情况下使用 Firebase Cloud Messaging Android 通知?

如何在 Swift 中从 Cloud FireStore Firebase 访问特定字段

如何从Swift中的Cloud FireStore Firebase访问特定字段