php – 通过mysql查询破坏了安全性,我不太明白

我一直在创建一个遗留网站.最近,用户告知我们潜在的安全漏洞.

长话短说,当尝试登录并使用’=”或’作为密码或用户名时,将执行以下查询.

SELECT * FROM `table-goes-here` WHERE `username` = ''=' 'or'' AND `password` = 'some-hash-goes-here'

查询将选择该表中的所有内容,并允许在没有任何实际有效凭据的情况下登录.

我只是维护网站,我之前已经与业主谈过这样的安全漏洞,他不会听.

我想知道的是这究竟是一个有效的查询以及它究竟做了什么(最好一步一步地向我解释,就像我是5版本一样).我的MysqL知识不是最好的.

我非常清楚这是一个sql注入.我知道如何准备陈述,但他们显然不在预算中.我只是想知道它究竟做了什么.即这一部分.我以前从未见过这种语法,谷歌搜索并没有真正帮助,因为我不知道我在寻找什么.

`username` = ''=' 'or''

解决方法:

事实上你正在奔跑

SELECT * FROM table WHERE (username= '' = '') or ('' AND password="");

和(user_username =”=”)计算结果为true …尝试

SELECT  (username= '' = '') FROM table;

和(”AND password =“”)也评估为真…尝试

Select ('' AND password="") FROM table;

也评估为真所以……一切都显示出来

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...