Archery
Archery copied to clipboard
SQL 审核查询平台
### 重现步骤 1.新增PG实例: 输入实例名称、实例类型、数据类型PgSQL、实例连接ip地址、端口、只读用户名、密码、数据库名 2.点击测试 3.提示无法连接实例,FATAL:password authencication faild for user "archery_read" 在虚拟机上使用命令,确定密码是正确的。 ### 预期外的结果 ### 日志文本 _No response_ ### 版本 1.8.5 ### 部署方式 Docker ### 是否还有其他可以辅助定位问题的信息?比如数据库版本等 PG的数据库版本是13.4 archery版本:1.8.5
### 重现步骤 使用工具插件里的工具,解析binlog,会有安全隐患,后台解析进程里数据库的用户名/密码都是明文的  ### 预期外的结果 期望,解析进程里,数据库用户密码隐藏 ### 日志文本 _No response_ ### 版本 1.8.5 ### 部署方式 Docker ### 是否还有其他可以辅助定位问题的信息?比如数据库版本等 _No response_
### 重现步骤 1. 获得任意一个账号(最低权限即可),登陆后获得sessionid 2. 使用postman访问接口/inception/osc_control/(该接口未做权限控制),post body为`workflow_id=1&sqlsha1=&command=get` 3. 将command参数设置为`show variables;#`(代码中未对command和sqlsha1参数做校验),即**command及sqlsha1参数存在SQL注入**,导致低权限用户可获取或修改各种variables(甚至修改备份数据库地址和账号密码) 4. 或者直接curl命令访问,只需替换其中的url及sessionid ``` curl "http://127.0.0.1/inception/osc_control/" \ -XPOST -s -d "workflow_id=1&sqlsha1=&command=show variables;#" \ -H "Cookie: csrftoken=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; sessionid=zi8lb58sojs0mkoc76mjayfaocxuvhmx" \ -H "X-CSRFToken: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"...
### 重现步骤 ```db.col.find().limit(1).skip(1)```与```db.col.find().limit(1)```查询出相同的数据 ### 预期外的结果 skip正常使用 ### 日志文本 _No response_ ### 版本 1.8.0 ### 部署方式 Docker ### 是否还有其他可以辅助定位问题的信息?比如数据库版本等 _No response_
### 重现步骤 ERROR 1146 (42S02) at line 2: Table 'archery.sql_instance_tag' doesn't exist  ### 预期外的结果  ### 日志文本 ```shell Warning: Using a password on the command line interface can be...
1. 将SQL检测和提交接入api方法,废弃原有实现 2. ExecuteCheck、WorkflowList两个视图权限替换为 permissions.IsAuthenticated,并增加单独的操作权限校验 3. SQL工单列表和提交增加权限资源权限校验,只能操作有权限的资源
### 重现步骤 select count(*) as phone_cnt from t1 like '7%' UNION ALL select count(*) as phone_cnt from t2 like '7%' UNION ALL select count(*) as phone_cnt from t3 where phone_no...
### 重现步骤 1.docker-compose 启动的archery运行正常 2.k8s运行qcluster.log经常出现reincarnated worker Process-1:14 after timeout导致工单状态需要5分钟才能显示已正常结束 3.请问使用ssh隧道,k8s的archery是不是必须使用宿主机模式 ### 预期外的结果 [2022-07-19 10:33:46,408][MainThread:140276745680704][task_id:django-q][cluster.py:226][WARNING]- reincarnated worker Process-1:3 after timeout [2022-07-19 10:34:12,537][MainThread:140276745680704][task_id:django-q][cluster.py:226][WARNING]- reincarnated worker Process-1:4 after timeout [2022-07-19 10:34:44,709][MainThread:140276745680704][task_id:django-q][cluster.py:226][WARNING]- reincarnated worker...
### 重现步骤 1.查询结果包含以下格式地址: 如0x2d7231aedc70199401c40bfc61a7560a3ec017de 2.将结果导出为json格式  3.查看内容,发现其值被转换成259451197643860000000000000000000000000000000000 ### 预期外的结果  ### 日志文本 ```shell 日志内容中无异常 ``` ### 版本 1.8.5 ### 部署方式 Docker ### 是否还有其他可以辅助定位问题的信息?比如数据库版本等 当前测试的数据库字段类型为: `sqllog` longtext NOT NULL
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multibyte sequence
### 重现步骤 点击菜单 相关文档,报 [UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multibyte sequence] ### 预期外的结果 Archery\sql\views.py ### 日志文本 _No response_ ### 版本 1.8.5 ### 部署方式 手工部署...