2013-02-21 34 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