SQL注入攻击

SQL注入攻击是通过利用SQL语句漏洞对系统进行攻击,常表现为正常的网页访问,不易被防火墙察觉。攻击者构造巧妙的SQL语句,如在用户名和密码中输入特定字符串,使原本的查询变为返回所有用户数据,实现无账号密码登录。解决方法是使用PreparedStatement预编译执行者对象,用占位符(?)代替直接拼接字符串,提高代码安全性。
摘要由CSDN通过智能技术生成

什么是SQL注入攻击
就是利用sql语句的漏洞来对系统进行攻击,SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问防止SQL注入攻击没什么区别,所以市面的防火墙都不会对SQL注入发出警报,如果管理员没查看ⅡS日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况,需要构造巧妙的SQL语句,从而成功获取想要的数据.
例如:
某个网站的登录验证的SQL查询代码为:
String sqlLogin= “SELECT * FROM users WHERE (name = '” + userName + “’) and (password = '”+ passWord +"’);"
恶意填入
userName = “1’ OR ‘1’='1”;

passWord = “1’ OR ‘1’='1”;
时,将导致原本的SQL字符串被填为
strSQL = "SELECT * FROM users WHERE (name = ‘1’ OR ‘1’=‘1’) and (password = ‘1’ OR ‘1’=‘1’);"
也就是实际上运行的SQL命令会变成下面这样的
strSQL = "SELECT * FROM users;"
因此达到无账号密码,亦可登录网站。所以SQL注入攻击被俗称为黑客的填空游戏。

SQL注入攻击的原理
1- 按照正常道理来说&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值