5.14#每日一问#使用客户端登录ob显示的mysql版本能否通过参数自定义

【产品名称】

【产品版本】

3.1.2

【问题描述】

使用客户端登录显示的mysql版本能否通过参数自定义,来应对安全漏洞扫描工具对 MySQL version 的要求。

Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 3221703018 Server version: 5.7.25 OceanBase 3.1.2 (r10000392021123010-d4ace121deae5b81d8f0b40afbc4c02705b7fc1d) (Built Dec 30 2021 02:47:29)

Server version: 5.7.25 

这个是OBServer实现的MySQL的协议版本号,和具体协议规范有关,不能随便修改的。


要与MySQL client配合,那就要使用具体的协议,随便改了,可能会发生错误。比如observer实现的是5.7,你改成8.0,那么对8.0版本的客户端使用observer就会识别错误,导致部分8.0特性下发给observer,出现异常

举个例子,如果mysql5.7.25发现了漏洞,如果安全漏洞扫描工具扫描出来了,如果有参数能够通过修改版本为比如改为5.7.26绕过检测就好了,反正这个mysql版本号只是个壳。改这个也不会对系统产生影响的。

并不完全是壳啊,协议支持的报文类型、报文格式决定的。


建议你看一下MySQL协议和MySQL驱动源码。


有很多前端应用是根据协议版本来进行执行对应SQL的。

最简单的MySQL驱动源码中,很多关于协议版本判断的,不同版本,执行不同的系统SQL命令或者系统参数或者变量,或者特定功能的SQL。

这个随便改 了,驱动判断错误,出现很多未知异常。

不会啊,我从5.7.25改成5.7.26能有啥问题呢,大部分的应用都不关心版本是多少。

小版本的改动一般确实不会有什么问题。但是你说大部分应用都不关心,这没错,不过程序大部分代码都是在处理“正常”应用不关心的逻辑

1 个赞