控制台中的AngularJs范围变量

Vam*_*msi 6 console angularjs angularjs-scope

我知道我们可以使用batarang(chrome extension)来访问范围变量angular.element(document.querySelector('selector')).scope()

我能够在angular.io,angularjs.org中访问范围,控制器

但是我遇到了一个angularJs网站(www.paytm.com),它可以阻止我访问控制台,控制器等的范围变量.

  1. 如何阻止用户访问范围变量?
  2. 即使我阻止,用户是否可以访问范围变量?
  3. 如果我阻止用户访问范围数据,我会有任何额外的安全性吗?

Est*_*ask 2

该网站使用

$compileProvider.debugInfoEnabled(false)
Run Code Online (Sandbox Code Playgroud)

其主要任务是提高应用程序性能

尽管它可以(宽松地)被视为针对 RE 的对策的一部分,但我严重怀疑这对于任何能够对模糊应用程序进行逆向工程的程序员来说都是一个问题。如果您不想破坏代码库,请不要在客户端使用它。

即使我阻止,用户是否可以通过任何方式访问作用域变量?

当然。

var scope;
angular.element(document.body).injector().invoke(function ($rootScope) {
  scope = $rootScope;
  console.log(scope);
});
Run Code Online (Sandbox Code Playgroud)

或者简单地说angular.reloadWithDebugInfo(),正如上面的指南所建议的那样。