Angular 如何处理google firebase web应用程序的安全性?

Angular 如何处理google firebase web应用程序的安全性?,angular,firebase,google-cloud-firestore,firebase-security,mbaas,Angular,Firebase,Google Cloud Firestore,Firebase Security,Mbaas,如果我将Firebase&Firestore与Angular web应用程序一起使用,我如何限制对我的Firebase资源的访问,使它们无法从Angular应用程序外部访问 主要漏洞似乎是Firebase配置在Angular代码中暴露。我想消除恶意开发人员获取此配置并开发一些bot或hack应用程序的能力。您可能需要在两者之间创建一种层(例如REST API),其中配置仅存储在您的服务器上。因此,客户端将只能访问RESTAPI,因此没有机会看到配置中的内容 文档说明Firebase有多种语言的

如果我将Firebase&Firestore与Angular web应用程序一起使用,我如何限制对我的Firebase资源的访问,使它们无法从Angular应用程序外部访问


主要漏洞似乎是Firebase配置在Angular代码中暴露。我想消除恶意开发人员获取此配置并开发一些bot或hack应用程序的能力。

您可能需要在两者之间创建一种层(例如REST API),其中配置仅存储在您的服务器上。因此,客户端将只能访问RESTAPI,因此没有机会看到配置中的内容


文档说明Firebase有多种语言的绑定,例如:

  • Java/Kotlin
  • Swift/Obj-C
  • C++
  • JavaScript
有关更多详细信息,请查看


另外,我认为我提出的REST层似乎不是一件尴尬或不寻常的事情,因为有一篇关于官方文档的非常好的文章


总之,您最好的选择是真正构建自己的RESTAPI。如果e。G但是,发生了一个事件,通知客户端将不再由Firebase完成,而是由您的服务器完成(例如,可以使用WebSocket实现)

这些只是想法,所以我不是很确定。也许Firebase仍然可以通知您的客户,您将不需要任何WebSocket

在框架方面,您有很多选择。真正重要的是,框架的核心语言确实是许多FixBasic实现的支持语言(java、js、Kotlin、C++、SWIFT、…)。 我建议您查看以下标准和框架,并选择您最喜欢的标准和框架:

  • Node.js/Express.js
  • Spring引导(如果未进入自动配置,则为Spring MVC)
  • JAX-RS(JavaEE标准)

编辑:但是
我认为构建一个restapi仅仅是为了克服可能出现的安全问题似乎就像做了两次每件事(创建REST资源,只是为了调用另一个googleapi)。我不想反对Firebase,因为事件驱动的体系结构非常热门,但是如果您正在构建API,那么创建自己的数据库实例
(NoSQL对于社交网络来说似乎更合适)
会更合理一些。不过,我还是想和大家分享一下我的想法:)

好吧,Firebase需要这个配置,它几乎只包含有关应用程序的详细信息,但本身并不是一个漏洞。也许你应该看看这个问题的公认答案谢谢你的回答。我已经通读了这个问题,很多人都喜欢它,但我强调的漏洞似乎被忽视了。当然,我可以要求用户在与我的Firebase资源交互之前进行身份验证。但如果我正在创建一个公共社交网络,任何人都可以创建一个帐户,每个人都可以访问我的Firebase配置。是什么阻止某人在自己的应用程序中使用我的配置,使用他们通过我的应用程序创建的帐户进行身份验证,然后使用free range向我的数据库写入或读取?