本文主要为大家介绍了Web网络安全漏洞分析SQL注入的原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
一、SQL注入的基础
1.1 介绍SQL注入
SQL注入就是指Web应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是攻击者可控的,并且参数带入数据库查询,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。
下面以PHP语句为例。
$query = "SELECT * FROM users WHERE id = $_GET['id']";
由于这里的参数ID可控,且带入数据库查询,所以非法用户可以任意拼接SQL语句进行攻击。
当然,SQL注入攻击按照不同的分类方法可以分为很多种,如报错注入、盲注、Unicode注入等。
1.2 注入的原理
SQL注入漏洞的的产生需要满足一下两个条件。
参数用户可控:前端传给后端的参数内容是用户可以控制的。
参数带入数据库查询:传入的参数拼接到SQL语句,且带入数据库查询。
 当传入的ID参数为1’时,数据库执行的代码如下所示。
select * from users where id = 1'
这不符合数据库语法规范,所以会报错。当传入的ID参数为and 1=1时,执行的SQL语句如下所示。
select * from users where id