AngularJS中的客户端与服务器端授权

时间:2014-03-28 16:50:07

标签: angularjs authorization client-side server-side route-provider

我正在研究这个用户应该回答一堆问题的应用程序。

我想要做的是保护具有问题对象的JSON的页面,其中还包含敏感信息,例如问题的答案。

我要做的是限制客户端非管理员用户访问该页面(他们不应该键入并转到该URL并在该页面上看到JSON,他们应该得到403),同时允许来自服务器端的非管理员用户的HTTP GET请求,所以我可以让他们回答问题。

这就是我在客户端所拥有的:

    $routeProvider
    .when('/questions', {
        resolve: checkRoleForRoute.admin
    })

这就是我在服务器端所拥有的:

    application.get('/questions', questions.getQuestions);

两者都适用于不同的路由,但一旦路由相同,就会始终执行服务器端代码,而客户端代码则不会。因此,任何非管理员的用户在访问URL时都能看到普通的JSON,这是不可取的。 关于为什么会发生这种情况的任何想法?

谢谢。

1 个答案:

答案 0 :(得分:0)

在提供JSON数据之前,您应该在服务器端添加一些安全检查,即服务器应检查数据是否可以提供给请求用户。

此外,在我看来,这条路线在客户端也是可以攻击的。 事实上,使用浏览器的开发工具,如果他足够聪明,可以更改或跳过“解析”字段。