我正在爲Angular創建一個新的企業應用程序。我對角度很感興趣,但是在客戶端處理角色並不適合我。Angular Js安全問題基於角色的授權
基本上我在用戶登錄之前以及在用戶查看頁面之前保存了一個令牌,授權請求發送到服務器以獲取基於令牌的角色和用戶詳細信息。
經過授權後,獲取頁面數據的請求返回給服務器,該服務器返回整個數據,而不考慮用戶的角色,然後根據角色使用ng-switch和render模板。
現在問題在於我試圖在客戶端顯示和隱藏數據,因此在收到用戶信息後,我必須將角色保留在某個Scope變量或客戶端任意位置的本地存儲中。但我的觀點是,如果我將它保留在客戶端,我可以非常輕鬆地更改角色並訪問我想要的任何數據。
因此,我應該假設Angular不適合我的應用程序,我試圖根據服務器角色顯示客戶端數據,因爲我覺得如果用戶可以看到您的邏輯和數據,他可以明顯玩它。
這是我的看法
<div ng-switch="User.data.Role">
<div ng-switch-when="Admin">
<h1>hello you are seeing your dashboard Admin</h1>
</div>
<div ng-switch-when="Manager">
<h1>hello you are seeing your dashboard Manager</h1>
</div>
</div>
這是我如何填寫用戶變量控制器
app.controller('dashoBoardController', ['$scope','UserService', function ($scope, UserService) {
$scope.authentication = UserService.authentication;
$scope.User = UserService.fillAuthData();
console.log($scope.User);
$scope.Greeting = "Welcome! to your Dashboard";
}]);
這是服務方法
var _fillAuthData = function() {
var authData = SessionService.get('user');
if (authData) {
_authentication.isAuth = true;
_authentication.data = authData;
}
console.log(_authentication);
return _authentication;
}
會話服務根據令牌從服務器獲取用戶數據。 正如你所看到的,因爲視圖是如此描述性的,所以改變authData中的角色並不是什麼大不了的事情。
如果有這方面的工作,請幫助我。我真的很想在Angular中進行這個項目。
作爲一般規則,服務應只發送用戶有權查看的數據。換句話說,安全應該由服務而不是客戶來處理。 – 2014-09-10 15:25:28