基于session的权限控制安全吗?

基于session的权限控制安全吗?

长安忆 发布于 2021-11-28 字数 306 浏览 873 回复 9

方式一:基于session的权限控制:登录时,获取数据库里存的权限,存入session,需要的时候取出验证。

方式二:基于数据库的权限控制:每次验证权限的时候,都去数据库取出来做对比验证。

感觉两种方式,方式一减少了数据库访问是不是效率更高些?但安全性如何?

方式二貌似可以更灵活是吧

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

伪装你 2021-12-01 9 楼

了解了,谢谢

累赘 2021-12-01 8 楼

是一加二,在session中存user的标识,对不是普通用户的,权限用表管理,尤其是涉及及时降升的时候,需要马上反应。

海之角 2021-12-01 7 楼

方式一 再加上适当的权限变更通知机制

皇甫轩 2021-12-01 6 楼

session 只是身份验证机制,应该和权限分开

嘦怹 2021-12-01 5 楼

你可以把权限按用户进行缓存,权限有变更的时候更新缓存。每次都从缓存里取,缓存里没有存储就从数据库里取,然后放缓存里。

泛滥成性 2021-11-30 4 楼

除了您举的例子,还有其他情况吗?我主要担心会不会有恶意串改

后知后觉 2021-11-30 3 楼

回复
你拍恶意串改那就加个salt作为key。还有session不参与权限分配里,但可以参与权限限制中,例如:某个权限操作,某段时间内有次数限制,这时候用session(或者其他)就方便了。详情你可以看下rbac3。

辞别 2021-11-29 2 楼

谢谢,我去看看

无声静候 2021-11-29 1 楼

session不参与权限控制中的,参与会出问题的,例如:动态的权限提升(降低)等。

每次都是从数据库来判断,决得效率不好,可以把权限库独立出来。