启用生产模式时,什么会阻止 angular.element().injector() 从浏览器控制台访问



我在生产代码中这样做了

$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(( 来自浏览器控制台的???

最后,您将交付要在客户端中运行的代码。因此,总会有代码传递到不受您影响的关注点中,可以由知道自己做什么的人进行检查。

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

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

相关内容

  • 没有找到相关文章

最新更新