AngularJs 基于角色的菜单显示安全问题

AngularJs Roles Based menu display security concern

我是 MEAN.js 的新手,目前正在处理具有两个角色的应用程序。 User & Admin 和我必须根据使用角色显示菜单。为此,我为管理员和用户角色创建了 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>

管理员和用户是控制器variables.now我尝试了不同的方法来设置这个变量的值。

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"

所以再次 un-authorized 用户可以看到菜单。

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

所以我不知道如何根据 roles.can 使我的 header 安全,任何人都请给我建议。

如果用户足够坚定,用户可以通过 多种 方式修改您的用户界面并查看他们不经常访问的屏幕。就是这样。

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