mysql的等号是什么意思_整理思维——等于等于等于?{MySQL条件等号的异常}

MySQL WHERE语句中,等号”=”通常作为判断的条件,然而这个等号却是弱类型的判断,如果忽略了这一点,很容易造成安全问题,以下我便整理一下我所知道的匪夷所思的“相等”.。

1.字符型和数字型

MySQL的等号同PHP一样,对等号两端不同的数据类型都有强制类型转换,如下

083cc60ed25980715bb1b37f6ec66a6d.png

但是却没有PHP的弱类型判断

814034cf42cd508e9f1a36ef77417a57.png

这个的应用范围很局限,但是又不得忽视,所以开发者在字段的数据类型的选择以及sql语句的构造方面,要多多注意,防止等号两边类型不相同导致的漏洞。

0dc1c75d86b6a6a8cd325e5d9373c395.png

73e913f99d9100e87c1b23078ce5a044.png

2.尾空格

MySQL等号对字符串尾部的空格做忽视的处理,所以我们可以构造一个’abc’=’abc   ’的效果,绕过某些特定串整体检查的WAF,不过相对来说,这个也比较鸡肋,因为很少有用字符串直接比对来过滤某些敏感串的。

2ee86d30f92ae84cbccc250d2ea3a185.png

这个可以直接用trim函数来避免

3.unicode字符集相似字符

其中有些相似字符,比如下面这个与a相似

449512e6758c0de42ce024e4cbb322c7.png

这样会造成什么后果呢?

f87c11a5ab4e0770c0ae683b4aabf91e.png

看到了吧,MySQL的等号认为这些相似字符也是相等的,这样的话,我们就可以完全绕过对敏感串的过滤,前提是在UTF8编码下。

4.新型万能密码

username='wupco'=''

这是有2个等号,然后计算顺序从左到右,

先计算username='wupco'

如果没有这个记录,则返回false

然后false=''

就成了true

所以这个就变成了where 1

达到了万能密码的效果

5270d117ac49e8ccc3ca34a53f2304e6.png

在Ubuntu上设置MySQL的lower_case_table_names参数无效,无法启动的问题可能是由于以下原因导致的: 1. 参数设置错误:请确保在MySQL配置文件中正确设置了lower_case_table_names参数。该参数应该在[mysqld]部分中进行设置,并且只能设置为0、1或2。例如,将lower_case_table_names=1添加到配置文件中。 2. 配置文件位置错误:请确保你正在编辑正确的MySQL配置文件。在Ubuntu上,默认的MySQL配置文件路径是/etc/mysql/mysql.conf.d/mysqld.cnf。你可以使用命令sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf来编辑该文件。 3. 配置文件格式错误:请确保在编辑MySQL配置文件时,语法和格式是正确的。每个参数应该在单独的一行上,并且以等号分隔参数名和参数值。 4. 文件权限问题:请确保你有足够的权限来编辑MySQL配置文件。你可以使用sudo命令来获取root权限进行编辑。 如果你已经检查了以上几点,但问题仍然存在,可以尝试以下解决方法: 1. 检查MySQL日志:查看MySQL的错误日志文件,通常位于/var/log/mysql/error.log。在日志中查找与lower_case_table_names相关的错误信息,以便确定问题的具体原因。 2. 重启MySQL服务:在修改了配置文件后,尝试重启MySQL服务以使更改生效。可以使用以下命令来重启MySQL服务:sudo service mysql restart。 3. 卸载并重新安装MySQL:如果问题仍然存在,可以尝试卸载MySQL并重新安装。首先,使用以下命令卸载MySQL:sudo apt-get remove --purge mysql-server mysql-client mysql-common。然后,重新安装MySQL:sudo apt-get install mysql-server。 希望以上解决方法能够帮助你解决问题!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值