【问题标题】:What would prevent angular.element().injector() access from browser console when production mode is enabled启用生产模式后,什么会阻止从浏览器控制台访问 angular.element().injector()
【发布时间】:2019-10-21 11:40:02
【问题描述】:

我在我的生产代码中这样做了

$compileProvider.debugInfoEnabled(false)
angular.reloadWithDebugInfo = angular.noop

由于上面的代码,当我在浏览器控制台中运行此脚本时

angular.element(document.body).scope() // output undefind

对于范围,它按预期工作但问题是,在浏览器控制台中不会阻止注入的服务

angular.element(document.body).injector().get('TestService')

它返回 TestService 实例,任何人都可以更新方法实现等。 我们如何在生产模式下防止浏览器控制台出现 angular.element(document.body).injector() ???

【问题讨论】:

    标签: angularjs developer-console


    【解决方案1】:

    最后,您交付要在客户端运行的代码。因此,总会有代码在您的影响下交付给关注点,知道自己在做什么的人可以检查这些代码。

    如果您担心安全性,则不应依赖不可见的客户端代码。增加代码的模糊性不仅不能使代码更安全,有时甚至会使情况变得更糟。唯一可以安全运行与安全相关的任务的地方是在服务器上,而不是在客户端上,无论您如何混淆它。

    如果您关心代码的知识产权,最好的办法(如果有的话)是使用某种代码混淆。这至少会增加对代码进行反向工程所需的工作量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      相关资源
      最近更新 更多