接口越权问题解决方案
- 2022-10-14 10:15:00
- 廖沅静 原创
- 409
1 场景需求
在租户模式下,限制个别用户的接口访问权限(接口越权)
2 接口授权原理与步骤:
(1) 通过角色授权中,实现用户接口访问权限;
(2) 若用户未分配角色,用户默认有部分接口的访问权限
(3) 配置限制用户访问接口的权限:
配置两个角色
角色a:为有用接口访问角色
角色b:为无对应接口访问权限
a) 需有一个角色作为超级超级管理员权限,该角色配置有访问所有接口的权限,在角色中接口授权,需要将访问的接口添加到接口列表的中
b) 配置限制用户接口访问权限:配置一个角色,不配置需要访问的接口授权,并将无访问权限的用户分配在其中
(注意:避免无访问接口权限的用户出现多角色身份叠加)
(4) 接口授权涉及到的表
接口列表:portal_sys_method
角色接口权限表:portal_sys_role_auth
(5) 执行一下sql语句,执行时注意点 【sql文件请下载文章末尾的附件】
a) 将租户id(tend_id)字段为-1更改为租户的id
b) 上述两张表是删除对应租户下的接口列表(portal_sys_method)、角色接口权限表(portal_sys_role_auth),在对这两张表重新插入接口列表(接口菜单),在角色接口表对对应的角色进行分配对应的接口(该步骤可在执行插入接口列表的后,在角色授权中对对应角色勾选相应的接口访问权限,需要对对应的菜单进行授权)
c) 执行如下接口权限初始化sql语句(执行前请做好数据库备份!)
发表评论