Node.js Firebase和Electron,如何保护主机?

Node.js Firebase和Electron,如何保护主机?,node.js,firebase,localhost,firebase-authentication,electron,Node.js,Firebase,Localhost,Firebase Authentication,Electron,我正在考虑在我的电子应用程序中使用Firebase。具体来说,我想首先使用Firebase身份验证让用户登录到我的应用程序。到目前为止,我已经做了大量关于这个主题的研究,我最担心的是授权重定向所需的域必须是localhost(如果我错了,请纠正我)。Firebase接口默认情况下将localhost设置为允许的域,我假设这只是为了开发人员测试,而不是为了实时生产环境(同样,如果我错了,请纠正我)。下图是我所指的Firebase身份验证界面的一部分,用于设置授权域 我的问题是,为了分发访问Fir

我正在考虑在我的电子应用程序中使用Firebase。具体来说,我想首先使用Firebase身份验证让用户登录到我的应用程序。到目前为止,我已经做了大量关于这个主题的研究,我最担心的是授权重定向所需的域必须是localhost(如果我错了,请纠正我)。Firebase接口默认情况下将localhost设置为允许的域,我假设这只是为了开发人员测试,而不是为了实时生产环境(同样,如果我错了,请纠正我)。下图是我所指的Firebase身份验证界面的一部分,用于设置授权域

我的问题是,为了分发访问Firebase的Electron应用程序,我必须授权localhost域吗?另外,如果我确实授权了localhost域,那么在恶意用户无法设置自己的localhost并重定向到意外页面的情况下,这是否安全,从而使他们能够自由地向Firebase数据库添加数据

如果有比授权本地主机更安全的替代选项,我的选项是什么

我在很多地方都读到过,Firebase的大部分安全性都是通过设置适用的规则来实现的,即谁可以读写数据库。也就是说,在这个话题上有一些很好的疏漏。但我坚信,如果有额外的安全措施可以采取,那么一定要采取,只要它们不会降低应用程序的质量


是我太偏执了,还是这是正确的方法?提前谢谢!非常感谢您的任何建议或指导。

我在您的帖子中看到许多问题,但我将回答以下两个问题:

  • 我的问题是,为了分发一个电子应用程序 要访问Firebase,我必须拥有localhost域吗 授权

    这不是Firebase暗示的。拥有本地主机 域授权仅用于运行时的测试目的 在部署到另一个域之前,请先在本地安装您的应用程序

  • 如果我确实授权了localhost域,那么在 的上下文无法让恶意用户设置自己的本地主机和 重定向到非预期页面,使他们能够自由添加 将数据传输到Firebase数据库

    是的,它是安全的。你说你还没有从Firebase开始, 但是当你这么做的时候,你会发现你需要下载 能够在应用程序中使用SDK。只有您有权访问这些凭据。这就是为什么其他用户无法设置自己的本地主机并访问您的身份验证系统


  • 在您的帖子中,您谈到了使用Firebase Auth,但最后您提到“Firebase安全性的形式是为谁可以读写数据库设置适用的规则”->请记住,这些规则适用于与之不同的服务。我感谢您的回复,我把它设为公认的答案,因为它似乎回答了我的问题。但我还是有点困惑,希望你能帮我澄清一下?您提到的服务凭据,不是仍嵌入在源代码中吗?我觉得我可能误解了什么。如果我在源代码中嵌入服务凭据来分发我的Electron应用程序,那么是什么阻止用户复制该信息并将其用于自己的目的呢?提前谢谢!如果这是显而易见的,我很抱歉..凭证是一个JSON文件,您正在导入源代码中。而且您使用的是node.js,因此任何人都不能访问此文件,因为它存储在服务器端。我从来没有真正开发过NodeJS应用程序,但我想可能有一些技术可以防止从服务器外部访问此文件。我想这就是Electron的问题所在。没有服务器,就像在chrome中打开文件一样。这并不是说我不能通过第三方创建服务器并托管它。也许只是通过电子接口显示信息。但我觉得这违背了使用DAS的目的。无论如何,我感谢你的帮助,谢谢!很抱歉,我的意思是在英菲什之外,这可能是有用的服务凭据,是管理SDK而不是客户端框架所必需的。由于您可能不想为用户提供管理功能,因此在可分发应用程序中不需要这些功能。