1

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

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

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

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

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

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

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

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

谢谢你。

4

1 回答 1

0

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

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

于 2016-09-29T10:10:41.167 回答