一、该问题的重现步骤是什么?
1. 租户角色设置为 包含administrator的别名时,可以获取到所有租户的数据
2.
3.
二、你期待的结果是什么?实际看到的又是什么?
期待只能看到本租户下的数据
实际看到所有租户下的数据
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
bladex商用版,2.8.1
四、请提供详细的错误堆栈信息,这很重要。
添加角色时的判定是否为超级管理员是用的equals方法,具体使用时又只要包含administrator就算超级管理员
五、若有更多详细信息,请在下面提供。
此bug会让使用此框架的系统数据完全暴露,很严重
创建新角色的时候因为是单个的,所以用的equals。
而用户会有多角色的设定,所以进行判断的时候用的是contains,这个逻辑没有问题。
目前从系统层面上操作,只有超级管理员才有全新创建新的超级管理员角色,其他的租户管理员都是无权操作的,所以不会有数据泄露问题。
当然如果你要说手动把数据库的字段值给改了,那的确会有泄露问题,但是都有权限操作数据库了,更应该担心的是数据库会不会整个被人拷走或者删除。
不是超级管理员的租户可以加 administrator123 administrator, 等等的角色别名。 这些也会被认为是超级管理员
注意上面的示例是administrator, 有逗号的,防止你们修改bug会漏掉这个场景
扫一扫访问 Blade技术社区 移动端