您的位置 首页 java

JDBC中的SQL注入问题

所谓的 SQL注入 问题意思是:现在有一个SQL语句,如:

“Select * from login where username = ‘xxx’ and password = ‘xxx’ ”,其中xxx是我们需要拼接的内容,当我们拼接一些特殊的字符后会发生一个很神奇的现象,拼接其他的字符串后会改变了原有 SQL 语句的执行,最终达到欺骗服务器的效果。举个例子:username和password是我们在登录 QQ 时输入的账号和密码,服务器得到我们输入的信息后,拿着我们输入的信息去数据库中找我们在注册时输入的账号和密码,我们输入的信息和服务器在数据库中找到的信息进行比对,若一样,则QQ登录成功,若用户名或密码有一个错误,则登录失败;

“Select * from login where username = ‘xxx’ and password = ‘xxx’ or ‘ 1 ’ = ‘ 1 ’ ”,如果我们在输入密码的时候,我们这样输入‘xxxx’or‘1’=‘1’,则会发生一个可怕的事情,无论我们的密码输入的正确还是错误,‘ 1 ’ = ‘ 1 ’判断都会为true,为true的结果就是无论密码对不对服务器都会找到正确的密码,从而导致比对成功,则登录成功,也就是说只要知道你的账号,密码随意输入,只要在最后加上‘ 1 ’ = ‘ 1 ’,最后我就可以登录你的账号,所以说SQL注入问题很严重, 会让数据库中的数据不安全,存在非常大的隐患 ,在使用 JDBC 时一定要避免的问题。所以就有了 SQL语句 预处理,使用SQL语句预处理的优点:

1.增强了SQL的可读性(之前在拼接时,显得非常乱);

2.可以参数动态化(我们可以通过传参的方式为其中的“ ?”赋值);

3.防止了SQL注入

4.提高了执行性能

文章来源:智云一二三科技

文章标题:JDBC中的SQL注入问题

文章地址:https://www.zhihuclub.com/197065.shtml

关于作者: 智云科技

热门文章

网站地图