是否可以检索 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 通知?