1
【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
:寻找到SQL注入的位置
2:判断服务器类型和后台数据库类型
3:针对不同的服务器和数据库特点进行SQL注入攻击
三:SQL注入攻击实例
String sql = "select * from user_table where username=
’ “+userName+” ’ and password=’ “+password+” '";
–当输入了上面的用户名和密码,上面的SQL语句变成:
SELECT * FROM user_table WHERE username=
‘’or 1 = 1 – and password=’’
“”"
–分析SQL语句:
–条件后面username=”or 1=1 用户名等于 ” 或1=1 那么这个条件一定会成功;
–然后后面加两个-,这意味着注释,它将后面的语句注释,让他们不起作用,这样语句永远都–能正确执行,用户轻易骗过系统,获取合法身份。
–这还是比较温柔的,如果是执行
SELECT * FROM user_table WHERE
username=’’ ;DROP DATABASE (DB Name) --’ and password=’’
–其后果可想而知…
“”"
四:如何防御SQL注入
注意:但凡有SQL注入漏洞的程序,都是因为程序要接受来自客户端用户输入的变量或URL传递的参数,并且这个变量或参数是组成SQL语句的一部分,对于用户输入的内容或传递的参数,我们应该要时刻保持警惕,这是安全领域里的「外部数据不可信任」的原则,纵观Web安全领域的各种攻击方式,大多数都是因为开发者违反了这个原则而导致的,所以自然能想到的,就是从变量的检测、过滤、验证下手,确保变量是开发者所预想的。