【问题标题】:Is it possible to view configuration files of an Angular.js app on production?是否可以在生产环境中查看 Angular.js 应用程序的配置文件?
【发布时间】:2016-11-15 08:10:54
【问题描述】:

我最近在一家开发 Angular.js 网络应用程序的公司工作。他们使用 Firebase 作为他们的数据库解决方案,在 app 目录下的应用配置文件中,他们使用 Firebase 密钥绕过 Firebase 的身份验证。

我想知道,它有多安全?有人可以通过 DevTools 或其他方法读取生产中的 Firebase 密钥吗?在配置文件中使用身份验证凭据是一种好习惯吗?丑化这些文件有什么帮助吗?

更新:

他们在 Angular.js 应用程序和其中一台 Node.js 服务器(他们有多个存储库)中都使用了密钥。

我想知道应用程序中的密钥相对于服务器的安全性如何?

【问题讨论】:

  • 回答下面的纯 AngularJS 应用程序。但是您也使用 node.js 进行了标记。你能解释一下它是如何融入应用架构的吗?
  • 因为该公司也有不使用 Angular 而只使用 Node.js 的服务器,并且以与应用程序相同的方式使用配置文件。
  • 这个描述现在还不清楚。这是一个使用密钥连接到 Firebase 的 AngularJS 应用程序吗?或者它是连接到自定义后端的 AngularJS 应用程序,该后端生成自定义令牌以连接到 Firebase?这两种情况非常不同,没有一个清晰的描述,我们无能为力。请提供问题中的所有详细信息,如果需要,请绘制图表。
  • 我很想知道两种情况下的答案,以便进行比较。

标签: angularjs node.js security firebase-realtime-database firebase-authentication


【解决方案1】:

了解 Firebase 数据库的秘密后,您就可以拥有对该数据库的管理员级别访问权限。因此,它不应与您的应用程序的用户共享,除非您对所有用户都访问您的数据库感到满意。如果您对此感到满意,那么您也可以不实施安全规则。

如果它是一个纯 AngularJS 应用程序,除了 Firebase 之外没有任何服务器组件,那么所有代码​​都必须在用户的浏览器中运行。这意味着秘密将在用户的浏览器中,正如所解释的那样,这是一个安全风险。

对文件进行修饰/混淆并没有显着帮助:价值仍然存在。解决方案是让用户正确地进行身份验证,这样您就可以保护数据库免受未经授权的访问。

【讨论】:

  • 因此,如果 Firebase 密钥仅在服务器上运行并且应用程序对服务器的用户进行身份验证,则这些身份验证密钥在浏览器中。不能公开服务器身份验证凭据吗?第三方将自己验证为用户?
  • 换句话说,与firebase身份验证相比,服务器身份验证如何工作?
猜你喜欢
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多