1、SQL注入简介
SQL注入是一种恶意用户通过Web页面使用SQL语句注入SQL命令的技术。攻击者可以绕过用户认证和访问限制,修改、删除数据库中的数据。在某些情况下,SQL注入甚至可以用来执行操作系统级的命令,攻击者入侵内网可能带来更大的威胁。
SQL注入的原理,就是开发时未对用户的输入数据(可能是 GET 或 POST 参数,也可能是 Cookie、HTTP 头等)进行有效过滤,直接带入 SQL 语句解析,使得原本应为参数数据的内容,却被用来拼接 SQL 语句做解析,也就是说,将数据当代码解析,最终导致 SQL 注入漏洞的产生。
接下来我们一起来看一个简单SQL语句:
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1
很明显可以看出,这句SQL语句显而易见是指从user表中进行查询,通过第一张表的第一列与输入进去的id进行校验。
这时如果我们向url里面添加:
?id=1'#
这是什么意思呢,很简单。1代表永真, ' 这个单引号是为了和原本sql语句中id前面的单引号形成闭合。#这个井字符是什么意思,相信有一部分人已经猜到了,这个符号是起一个注释的作用。将后面的东西