网站权限:在用户登录时更改用户权限

时间:2011-12-08 23:58:45

标签: permissions security

我可能错了,但我的理解是处理这样的权限是一种非常普遍的做法:

  1. 用户进入登录页面并提供用户名和密码。

  2. 验证用户名和密码。如果有效,则将用户的信息(包括权限)设置为会话变量。

  3. 当登录用户浏览网站时,某些功能可根据用户在会话中引用的权限使用。

  4. 这是有道理的,因为频繁查询数据库以获取用户的权限是不切实际的。但是,从安全角度来看,我不确定最佳方法是什么。一个简单的例子是,如果您在用户登录时删除了某个权限。一个极端的例子是,如果您在登录时将用户帐户标记为非活动状态。我不知道除了将数据库权限检查(而不是会话权限检查)编码到网站的每个部分之外,您如何让该用户的Web浏览器了解更改。再说一遍,这似乎有些过分,但如果你想要一个安全的网站,这真的是唯一的方法吗?

    谢谢!

1 个答案:

答案 0 :(得分:0)

我相信你已经说得对了:

  

我不知道如何让该用户的网络浏览器了解更改,而不是将数据库权限检查(而不是会话权限检查)编码到网站的每个部分。

根据网站的设计方式,当您对用户的权限进行足够大的修改时,使用户的会话无效可能会有意义。删除会话意味着用户将面临新的登录请求,但如果您刚刚禁用了他们的帐户或严重降级了他们的权限,那么这可能是可以接受的。

但是您不希望为每个小事件使会话无效,当然也不希望几乎任何权限增强操作。

如果您在上次身份验证后N秒过期所有会话,则可以对应用程序代码授予实际已撤消权限的时间量设置上限。无论如何,当赌注不是很高时,这可能是合适的。