SQL注入攻击

当我们把表单数据提交给页面,页面判断用户输入的用户名和密码有没有都符合要求(这一步至关重要,也往往是SQL漏洞所在)。

直接将用户提交过来的数据(用户名和密码)直接拿去执行,这是致命的。

根据提交的用户名和密码被合成到SQL查询语句当中之后是这样的:
select * from users where username='admin' and password=md5('abcd1234')

构造个特殊的“字符串”,照样可以登录:

在用户名输入框中输入:’or 1=1#,密码随便输入,这时候的合成后的SQL查询语句为:

select * from users where username='' or 1=1#' and password=md5('')

等价于select * from users where username='' or 1=1

1=1恒成立,所以直接检索users表中所有字段

所以用安全占位符,不要用字符串拼接的方式

 

posted @ 2021-08-26 21:14  安静ovo  阅读(38)  评论(0编辑  收藏  举报