Archery icon indicating copy to clipboard operation
Archery copied to clipboard

权限漏洞,没有查询表权限的人可以提工单进行修改

Open feiazifeiazi opened this issue 1 year ago • 4 comments

重现步骤

前置条件:

archery系统有2个资源组: A系统_资源组 (实例2个:A系统_只读、A系统_写) B系统_资源组 (实例2个:B系统_只读、B系统_写)

系统允许受影响行数为10以内的时候,自动审核。

测试人员小王现有以下权限 。

  1. 有“在线查询”的菜单。
  2. 有“权限管理”的菜单。
  3. 有“SQL上线”的菜单权限, 没有审核权限。可自己执行权限。

小王的角色是 可以对B系统做所有操作,可以查询,可以提交表结构。 只能偶尔申请A系统的查询权限,不能修改A系统的数据。

预期外的结果

小王现在在“在线查询”里,能看到 “A系统_只读”, "B系统_只读" 但查询不了,符合预期。 为什么他可以在"SQL上线"菜单中,提交变更SQL,然后自己执行了?

我现在的解决方案是: 一个实例一个资源组。

小王有: 只读_A系统_资源组 只读_B系统_资源组 写_B系统_资源组

不给他 A系统_写_资源组 然后修改archery代码,在“SQL上线”菜单,右边的“请选择组”下拉框过滤掉 只读的资源组。

我这样配置有无问题,是我哪里搞错了吗?

日志文本

No response

版本

1.8.3

部署方式

Docker

是否还有其他可以辅助定位问题的信息?比如数据库版本等

No response

feiazifeiazi avatar Jan 30 '24 03:01 feiazifeiazi

请用master分支代码重试看能否复现

LeoQuote avatar Jan 30 '24 03:01 LeoQuote

请用master分支代码重试看能否复现

复现的。 某用户对实例查询无权限,但是能提交工单,满足了自动审核,然后自己执行了。

feiazifeiazi avatar Apr 12 '24 09:04 feiazifeiazi

可以和数据库用户权限搭配实现一下

yeepaysre avatar Apr 26 '24 12:04 yeepaysre

有权限叫做sql|premission|执行SQL上线工单(仅自己提交)和sql|permission|执行SQL上线工单(资源组粒度),配置项管理里面有个叫做上线自动审批的功能,这几处看看有没有开启或者赋予权限。

tonyhu214 avatar May 22 '24 08:05 tonyhu214