AngularJS 是否能满足企业应用的安全需求

jopen 9年前

AngularJS 是否能满足企业应用的安全需求

AndularJS开发团体最瞩目的内容是关注于所谓待开发内容(greenfield)的开发--不依赖于空数据库或新概念的新应用。然而这却是开发新 的Angular应用程序的常规方法,忽视了很多将已存在应用迁移到以Angular为中心的开发环境中能得到的好处。下面我们会浏览一下迁移到 Angular的企业用户会面临的问题以及如何减轻这些问题的影响。

安全

大多数组织对已有产品迁移关注的第一个问题就是安全。其中最关注问题之一就是可能会向组织架构中引入安全漏洞。幸运的是这个 问题在Angular环境中不是很严重。Angular的核心解决问题是特有的数据显示 – 不管是REST API还是简单的网络服务,Angular应用程序都通过HTTPS接口与服务器通信,随后将获取到的数据显示在屏幕上。从这方面来看,保证 AngularJS应用程序的安全就和你的组织为加强安全已做的一样简单 – 在服务器上读取安全的会话,防御注入攻击,对异常访问模式(abnormal calling patterns)加强防护。

对那些期望将他们Angular前端(front-end)展示给更多人的组织,也同样提供了不同用于防御跨站脚本攻击的方法。比如,Angular 的$http模块提供了现成的方法防御CSRF(虽然需要要求服务器支持这项功能)。另外,Angular同时支持strict expression evaluation(通过CSP)和提供执行SCE(strict contextual escaping)的能力,可以减少大多数的客户端安全问题。如果全部失败,AngularJS也足够灵活,可以整合更多可靠的第三方安全库,比如 OAuth。

充分利用现有的数据

AngularJS 的好处之一就是它对于所要依赖的数据管理系统没有强加任何限制. 实现一个 AngularJS 应用程序的一个最流行的方法就是使用 RESTful API 提供所有的要依赖于数据库的数据访问. 通过利用可能已经存在的内部API,你可以很容易的用Angular代码等价替换现有的前端代码. 它同时也能花费最少的工作量来重复使用任何现有服务端的安全架构. 此外,如果正在被更替的应用程序目前正使用一种像Django 或者 Rails这样的web应用程序框架, 更替就会想前端的更替一样简单, 它能让你充分利用Angular指令风格的优势来快速增强网站系统的性能.

访问管理

当我们利用AngularJS来充实现有的应用程序时,存在一个重要的担忧,那就是它是否可以使用现有的安全策略来维持根据部门指南制定的访问级别的安全 限制. 利用 Angular 的灵活性, 要将现有的域系统集成到应用程序的登陆和安全流有许多可选的解决方案 – 比如 ActiveRecord/LDAP. 因为AngularJS 只是一个客户端, 上述的这一功能并没有内置. 不过,还是有许多补充库 – 比如 ldapjs – 它能通过AngularJS和相关的库之间的交互来实现单点登录. 利用这些外部的库相当简单,只要引入这些代码并执行一个快速的安全检查,确保没有引入额外的安全漏洞就行了.

总结

由于大多数的博客文章和新闻组谈论 AngularJS 都将关注点凡在新的开发领域 – 一个新的应用程序的新的web外观, 或者是在一个现有的软件机构中新颖开发 – 这很容忽略掉 AngularJS 在企业级领域的发展空间. 在企业级开发过程中的许多问题都已经由 AngularJS 或者相关库解决. 通过利用上述的信息作为基础, 你的组织应该可以很容易的将 AngularJS 应用到组织现有的匹配web开发模式的项目中.