HuangWeiCen

Results 18 issues of HuangWeiCen

# 背景 SQL的上下文关联设计之初也是为了满足sql审核上线的,在sqle 的扫描任务中,sql之间没有关联性且扫描的sql可能也是已经上线过了,因此有部分场景不应该进行上下文关联和基础的对象验证。 例如: 某扫描任务中扫描到 create table的SQL,此时如果对create table进行连库审核,必然触发表已存在的审核建议 详见文档(pageId=36632145) # 影响面 ## 影响插件 MySQL, TiDB, OceanBase For MySQL 目前会使用到session.Context # 开发方案 ## 整体方案 1. 新增一个规则, 用于控制开启或关闭基础对象检查和上下文关联, 位于全局配置中 2. 一旦开启这个规则,...

suggestion

# 问题现象 /v1/instance_tips 接口调用者不是admin, 且functional_module为create_audit_plan, filter_db_type不为空时会出现这个情况 ![image](https://user-images.githubusercontent.com/37464327/183854701-d6b8995a-d86f-4267-bec2-6f2f559bb258.png) ![image](https://user-images.githubusercontent.com/37464327/183854768-0660f238-fcfe-4ce3-8247-0b113d4029cb.png) # 影响功能 非admin用户修改审核任务 ![image](https://user-images.githubusercontent.com/37464327/183861076-0726137b-9983-4ac3-af6e-c98ad85cf405.png) # 问题说明 在满足问题现象说的情况时, 获取实例列表的sql在实例类型的SQL需要六个参数, 少传了两个 # 修复方案 补上那两个参数

bug

# 背景 SQL语句中需要包裹字符串时请务必使用单引号而非双引号, 因为MySQL的 sql_mode中有一项 'ANSI_QUOTES', 开启后双引号包裹的内容会被当作标识符而非字符串, 从而导致本来正确的sql执行不了 # 官方文档 [MySQL :: MySQL 5.7 Reference Manual :: 5.1.10 Server SQL Modes](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_ansi_quotes) # 测试过程 开启此项后执行SQL的结果如图 ![origin_img_v2_d8c27657-d64d-40ed-a086-7f3e3c5a844g](https://user-images.githubusercontent.com/37464327/183623836-2f494d33-6f10-4499-aaa2-4f1ab86040da.jpg) 关闭此项后执行SQL的结果如图 ![origin_img_v2_950cd405-0db7-49b7-aeda-a60cc9eeca0g](https://user-images.githubusercontent.com/37464327/183623918-493bc5fd-e108-4af1-bd7b-575c46341ef5.jpg)

bug

# 优化建议 ## 当前问题 当前规则列表中的规则校验逻辑都是独立函数, 这种做法已经无法适应新的需求 新需求指部分场景可能会有特定的审核要求, 此时需要审核函数根据特定要求调整自身逻辑 ## 建议优化方案 将校验逻辑的入参调整为一个结构化的数据, 便于以后增加参数 # 调整方案 ## 相关定义 ### RuleHandler调整 旧定义 ``` func(*session.Context, driver.Rule, *driver.AuditResult, ast.Node) error ``` 新定义 ``` func(input *RuleHandlerInput)error...

suggestion

**SQLe Version** 1.2205.0 **Describe the bug** 下方那条 "SQL" 在进行审核时审核按钮会一直卡死在转圈圈状态 ``` CREATE [DEFINER = { user | CURRENT_USER }]  PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body proc_parameter: [ IN | OUT |...

bug

# 问题描述 1. 执行下方建表语句会报出无法解析的错误 ``` CREATE TABLE `tb01` ( `ID` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增 ID', `NAME` varchar(20) NOT NULL DEFAULT '' COMMENT '名字', PRIMARY KEY (`ID`) )...

bug

# 问题描述 部分审核规则有特定的使用场景, 如 规则就不应该用于审核mybatis的sql, mybatis中sql的占位符会被预检查规则误判为错误sql 但现在审核规则是跟数据源绑定的, 无法根据实际场景忽略对应的规则 # 方案 1. 数据源多模板模式,对于不同的场景应用不同的规则模板

suggestion

**Suggestion** 新增一个无需登录的接口用于下载scanner, 并在审核任务界面增加一个下载按钮 **Why** 后续可以直接用curl或从界面下载scanner,而不用登录到sqle部署的机器上手动拷贝出scanner

ui
suggestion

### 问题描述 swagger注释和代码中注册API的位置需要手动填写两遍URI(格式不一样不能复制粘贴), 如果uri的最后一节是可变路径, 则两处URI的末尾需要保持一致, 要么都加斜杠, 要么都不加, 否则可能导致echo错误的将末尾斜杠也当作可变路径的一部分

suggestion