基于数据库的菜单权限控制
web项⽬的安全问题越来越受到重视,我们知道web项⽬中常见攻击漏洞⽅式有:⽔平攻击,垂直攻击,我们都晓得⽔平攻击只需要利⽤ssion或者cookie加密urid,防
⽌恶意篡改数据即可。接下来我们通过例⼦来设计基于数据库的菜单权限控制可以在⼀定程度上防⽌垂直攻击。
我们都知道对于权限的控制如果粒度控制到增删改查的话,就过细节了,我们尽量控制在对于功能模块中,然后再细分增删改查。整个权限控制⼤致可以划分为5张表,部分表
也可省略。
⽤户模块菜单模块资源模块
USER
USER_ID
USER_NAMELOGIN_ID
USER_PASSWORDOTHER_MESS
⽤户ID姓名登陆账号密码其他信息
ROLE
ROLE_IDROLE_NAMEROLE_TYPE
⾓⾊ID⾓⾊名称⾓⾊类型
USER_ROLE
USER_IDROLE_ID
⽤户ID⾓⾊ID
MODULE
MODULE_IDMODULE_NAME
MODULE_CODE
PID
INDEX
URL
ID模块名称模块英⽂名
该模
块⽗
类ID
菜单等
级
c操
控资
源地
址
AUTHORIZATION
AUTHORIZATION_IDAUTHORIZATION_NAMEAUTHORIZATION_CODE
MODULE_ID
ID权限名称权限英⽂名模块ID
ROLE_AUTHORIZATION
AUTHORIZATION_IDROLE_ID
权限ID⾓⾊ID
我们制作⼀个er图⽅便理解
各个表外键设计如上图⽰范。这⾥最主要的就是先取得⽤户的⾓⾊role_id判断他的⾝份然后和资源表连接从⽽判断他操控的资源模块。
sql脚本给出:
lect*from(_idrole_id,le_name,u.*fromur_rolet,rolet2,_id=__id=_id)a
,(_id,r.*fromauthorizationr,role_ization_id=ization_id)_id=_id
这样可以查询每个⽤户所对应可操作权限的模块,在系统中可以通过登陆给定的信息判断资源,对不可操作菜单给予不显⽰。
本文发布于:2022-11-16 03:53:45,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/28664.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |