2013-02-21 68 views
0

我從AngularJS開始,我想展示這個訪問路由參數屬性的代碼。安全嗎?最佳做法是這樣做嗎?這是使用AngularJS訪問json屬性的安全且有效的方法嗎?

angular.module('messagecat', []). 
    config(['$routeProvider', function($routeProvider) { 
    $routeProvider. 
     when('/messages', {templateUrl: '/bundles/acmestore/js/partials/messages-list.html', controller: MessagesListCtrl}). 
     when('/messages/:messageId', {templateUrl: '/bundles/acmestore/js/partials/message-detail.html', controller: MessageDetailCtrl}). 
     otherwise({redirectTo: '/messages'}); 
}]); 

/*controller*/ 

function MessagesListCtrl($scope, $http) { 
    $http.get('/messages').success(function(data) { 
    $scope.messages = data; 
    }); 
} 

/* Does this following bit seem reasonable to you?*/ 
function MessageDetailCtrl($scope, $routeParams, $http) { 
    $http.get('/messages').success(function(data) { 
    $scope.messages = data[$routeParams.messageId]; 
    //console.log($scope.messages); 
    }); 
} 

the json model: 

[ 
    { 
     "id": 1, 
     "iam": 1, 
     "youare": 2, 
     "lat": 50.8275853, 
     "lng": 4.3809764, 
     "msgbody": "Lorem ipsum lorem ipsum lorem ipsum" 
    } 
] 
+0

你對此有什麼擔憂?對我來說看起來很好。不過,我很驚訝,服務器不允許你通過ID發送消息,當你只需要一個消息時,你不得不將它們全部取消。 – 2013-02-22 00:26:09

+0

我的擔心是我在代碼中傳遞路徑內容,但沒有真正消毒......如果有人將惡意內容作爲url輸入......您的意思是我應該爲單個消息提供單獨的後端API? (我自己做後端,因爲我是前端開發人員......) – 2013-02-22 07:12:02

回答

3

,因爲它的所有用戶訪問你不能相信你已經交付給客戶什麼,畢竟,他們可以按F12調出相同的開發工具。最後,您必須關注數據發送來的Web API。它必須是安全的(用戶必須通過每項操作的認證和授權)並驗證所有發送給它的所有內容......換句話說,將Web API編碼爲從任何地方調用!

+0

「編寫Web API,就好像它從任何地方被調用一樣!」 +100! – 2013-02-22 14:05:41