【问题标题】:How to secure my code in Angular2?如何在 Angular2 中保护我的代码?
【发布时间】:2016-10-09 22:03:47
【问题描述】:

想象一下,有一个应用程序,它有繁重的管理界面和很多很酷的功能,以及简单的用户界面,比如一个按钮。 我知道我可以基于某些东西(键、哈希或其他)限制我对我的 url(组件)的访问。 我想要实现的是: 如果后端决定我是普通用户 - 它只发送小型应用程序(例如,只有一个带有按钮的组件)并且用户不会收到(整个站点功能)的所有重型组件代码。所以他将无法分析我的管理员 javascript。 如果后端决定我是员工 - 前端应该收到所有必要的员工组件。如果我是管理员,我应该收到所有组件。

【问题讨论】:

  • 这似乎与javascript或angular2无关。您使用的服务器需要决定它是否发送某些东西。请将此问题定位到与您正在使用的服务器相关的标签。
  • 服务器实现毫无疑问,它是否容易包含或不包含一些js,基于标准,但Angular2在一个js中编译整个应用程序!在 angular1 中,我可以根据条件添加或不添加繁重的组件脚本。但是在 angular2 中,打字稿包括所有内容,即导入的组件。这是一个文件
  • 我明白了。您可以构建两个不同的应用程序(同时共享 commong 部分)。我假设路由的延迟加载功能将应用程序分成几部分(我自己没有尝试过),我猜构建工具需要支持这一点。正在进行的工作。关于routerrouter-deprecated 以及新路由器的大惊小怪至少在很大程度上是由延迟加载的需求引起的。
  • 想象一下,我有 5x5 表来描述用户(超级管理员、员工、访客和用户)的角色,如果是这样,我需要 25 个应用程序吗?理想情况下,我希望仍然拥有一个应用程序。您的答案会起作用,但不适用于我的情况。我真的必须有不同的角色,而不是两个角色那么简单。
  • 对不起,我没有使用 webpack,尝试在这里调查:webpack.github.io/docs/amd.html

标签: javascript typescript static angular


【解决方案1】:

问题是:

你真的需要它吗?

一般模式是发送整个 js 捆绑文件(您可以对其进行混淆、缩小等),但它仍将包含您已实现的模板和代码。在大多数情况下,这不是问题,因为实际上没有敏感数据。关键是要正确保护 REST API 端点。

如果你真的想要

您可以使用例如webpack 或任何其他允许您创建单独的捆绑包并仅在需要时(例如成功登录后)加载适当代码块的捆绑系统。这里有webpack async loading。该资源将受到托管服务器的保护(需要授权用户 - 就像 REST API 调用一样)。

【讨论】:

  • 谢谢!现在我的愿景完成了
猜你喜欢
  • 2014-10-22
  • 2019-01-27
  • 1970-01-01
  • 2015-01-04
  • 2011-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多