AngularJs Roles Based菜单显示安全问题

时间:2015-03-29 17:21:20

标签: javascript angularjs meanjs

我是MEAN.js的新手,目前正在处理具有两个角色的应用程序。用户&管理员和我必须根据使用角色显示菜单。为此,我为管理员创建了Header文件,如下所示;用户角色。

<ul class="nav navbar-nav navbar-center" data-ng-if="admin">
         admin menus
</ul>
<ul class="nav navbar-nav navbar-center" data-ng-if="user">
         user menus
</ul>

其中admin&amp; user是控制器变量。现在我尝试了不同的东西来设置这个变量的值。

1)我在sessionStorage中设置了userRole的值,如下所示。

    $window.sessionStorage.userRole = loggesUser.role (A role from login user)

但在此,任何用户都可以从浏览器sessionStorage更改此值,并且可以看到未授权的菜单。

2)我还尝试将userRole设置为cookie,如下所示。

  $cookieStore.put('userRole','user')

但此处用户还可以使用

从浏览器控制台更改cookie值
document.cookie="key=value"

所以再次未经授权的用户可以看到菜单。

3)我也尝试将userRole放入$ scope,但用户也可以从浏览器控制台更改此值。

所以我不知道如何根据角色使我的标题安全。任何人都可以给我这个建议。

1 个答案:

答案 0 :(得分:0)

如果用户确定了足够的多种方式,用户可以修改您的用户界面并查看他们无法定期访问的屏幕。这就是它的样子。

这可以通过在服务器上强制执行授权(不是身份验证,但您也需要!)来解决。在请求进入服务器端时,在允许执行请求之前检查用户的角色。如果用户的角色没有他们尝试执行的操作的权限,请返回403响应。