关于java中sql注入问题的理解

一直以来对于sql注入云里雾里,多次了解后有些许领悟,一起分享,希望给刚入门的朋友一些帮助。

我们来看如果不采用占位符就是问号的sql查询语句,此多用于登录查询。

sql语句:select * from user where username=‘"+username+"‘ and password= ‘"+password+"‘

我们把以上语句写的分开一些,来看,这样比较清楚,如下:

select * from user username=‘  "+username+"  ‘ and password=‘  "+password+"  ‘

java 链接数据库,用于查询比对username和password ,sql语句就是以上,很简单的查询语句。

看似没什么问题,如果我们这样输入,就会导致登录漏洞,就是不管账号密码对不对都能登录上,如下输入方式:

username:dkjfjdl   备注:随便输入

password:a‘ or ‘a‘=‘a

这样的username和password传到sql进行查询,语句就变成了恒等式,如下:

select * from user where username=‘dkjfjdl‘ and password=‘a‘ or ‘a‘=‘a‘

这样就造成不论username对不对,其where后面都是true,所以造成sql注入问题。

以上就是关于sql注入的个人理解,不足之处,多多批评。

关于java中sql注入问题的理解

上一篇:将批量的SQL文件导入SQL Server数据库


下一篇:mongodb常用数据库指令