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開發模式的項目中.
英文原文:Does AngularJS Meet Enterprise Security Needs?