【问题标题】:AngularJs Roles Based menu display security concernAngularJs 基于角色的菜单显示安全问题
【发布时间】:2015-03-30 01:36:51
【问题描述】:

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

<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>

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

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 但用户也可以从浏览器控制台更改此值。

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

【问题讨论】:

    标签: javascript angularjs meanjs


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-11-04
      • 2019-04-12
      • 2015-01-11
      • 2012-01-14
      • 2013-03-21
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      相关资源
      最近更新 更多