我正在研究这个用户应该回答一堆问题的应用程序。
我想要做的是保护具有问题对象的JSON的页面,其中还包含敏感信息,例如问题的答案。
我要做的是限制客户端非管理员用户访问该页面(他们不应该键入并转到该URL并在该页面上看到JSON,他们应该得到403),同时允许来自服务器端的非管理员用户的HTTP GET请求,所以我可以让他们回答问题。
这就是我在客户端所拥有的:
$routeProvider
.when('/questions', {
resolve: checkRoleForRoute.admin
})
这就是我在服务器端所拥有的:
application.get('/questions', questions.getQuestions);
两者都适用于不同的路由,但一旦路由相同,就会始终执行服务器端代码,而客户端代码则不会。因此,任何非管理员的用户在访问URL时都能看到普通的JSON,这是不可取的。 关于为什么会发生这种情况的任何想法?
谢谢。
答案 0 :(得分:0)
在提供JSON数据之前,您应该在服务器端添加一些安全检查,即服务器应检查数据是否可以提供给请求用户。
此外,在我看来,这条路线在客户端也是可以攻击的。 事实上,使用浏览器的开发工具,如果他足够聪明,可以更改或跳过“解析”字段。