【问题标题】:Is this a secure and efficient way to access a json property with AngularJS?这是使用 AngularJS 访问 json 属性的安全有效的方法吗?
【发布时间】:2013-02-21 22:05:44
【问题描述】:

我开始使用 AngularJS,我想展示这段访问路由参数属性的代码。这样做是否安全/最佳实践?

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"
    }
]

【问题讨论】:

  • 您对此有什么顾虑?在我看来很好。不过,令我惊讶的是,服务器不允许您通过 id 发送消息,当您只想要一个时,您必须将它们全部拉下。
  • 我担心的是我在我的代码中传递了路径内容而没有真正清理它们..如果有人将恶意内容作为 url 怎么办...你的意思是我应该有一个单独的后端 api一条消息? (我自己做后端,因为我是前端开发人员......)

标签: json security angularjs


【解决方案1】:

您不能信任您交付给客户端的任何内容,因为用户可以访问所有内容,毕竟,他们只需按 f12 即可调出相同的开发工具。最后,您必须专注于发送数据的 Web API。它必须是安全的(用户必须经过身份验证和授权才能进行每个操作)并彻底验证发送给它的所有内容...换句话说,对 Web API 进行编码,就好像它可以从任何地方调用一样!

【讨论】:

  • "对 Web API 进行编码,就像从任何地方调用它一样!" +100 !
猜你喜欢
  • 1970-01-01
  • 2013-10-12
  • 1970-01-01
  • 2012-01-06
  • 2013-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多