控制台中的 AngularJs 范围变量

标签 angularjs console angularjs-scope

我知道我们可以使用 batarang 访问范围变量( Chrome 扩展)和 angular.element(document.querySelector('selector')).scope()
我能够在 angular.io 中访问范围、 Controller , angularjs.org

但是我遇到了一个 angularJs 网站( www.paytm.com ),它能够阻止我访问控制台、 Controller 等中的范围变量。

  • 如何阻止用户访问范围变量?
  • 即使我阻止,用户是否可以通过任何方式访问范围变量?
  • 如果我阻止用户访问范围数据,我会有任何额外的安全性吗?
  • 最佳答案

    我无法发表评论,因为我没有足够的声誉,但即使我无法回答你的第一个问题,我也可以对其他两个问题提供一些见解:

    1. Even if I block, is there any way that users may access the scope variables?


    是的。每次在客户端机器上运行应用程序代码时,都可以访问有关正在运行的内容的信息。这适用于在客户端运行的每个代码。

    虽然您可以尝试让恶意用户更难发现数据,但您无法真正安全地防止所有伤害。

    在 angularjs 应用程序的特定情况下,请记住您的代码可以从浏览器访问并且任何用户都可以使用它(即使它被捆绑和缩小!)。因此,逆向工程应用程序并在受控环境中运行它不会太难。

    1. Will I have any extra security if I block users from accessing scope data?


    嗯,这是有争议的。正如我在 2 中解释的那样,仍然可以访问您的范围变量,只是更难。我认为这里真正的问题应该是:“我是否关心是否有人可以访问我的范围变量?”

    这个问题的答案应该始终是一个强调的“不”。您在客户端掌握了哪些明智的信息?它应该在那里吗?请记住,每个合理的信息都应该加密存储,并且只能在加密通信中通过网络传递。如果客户端有一些你绝对不允许访问的逻辑,它应该在服务器端。这就是您可能会发现的大多数合理信息问题的答案。

    TLDR:人们仍然可以访问您的范围。你应该设计你的应用程序,这样你就不必关心它了。

    关于控制台中的 AngularJs 范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29799494/

    相关文章:

    javascript - 如何将数据添加到 Angular 返回的对象中?

    javascript - 无法使用 Angular.merge() 合并对象

    javascript - 如何以 Angular 方式实现 Twitter 按钮

    javascript - CoffeeScript - 不允许在 Angular 表达式中引用 DOM 节点

    java - 在Notepad++中运行Java程序

    postgresql - 在 psql 中定义多行字符串

    javascript - AngularJS - $注入(inject)器 :modulerr Module Error in angular. js:36

    angularjs - 'ng-repeat' 如何获取 `unique` 值

    javascript - AngularJS : pass ng-model from directive component to controller

    javascript - AutoPostBack 仅在 Chrome 的 Javascript 控制台打开时有效