什么是SQL注入攻击
SQL注入攻击产生的原因:Statement传输器在发送SQL到数据库执行时,是直接将SQL语句和参数拼接在一起由于后台的SQL语句是拼接而来的。而其中的参数是由用户提交的,如果用户在提交参数时,在其中掺杂了一些SQL关键字或者特殊符号(比如,or # --),就可能会导致SQL语句的语意发生变化。从而执行一些意外的操作(在不知道密码的情况下也能登陆,甚至在不知道用户名和密码的情况下也能登陆),这就是SQL注入攻击。
如何进行SQL注入攻击
1.数字注入
注入or 1=1
正常情况下,应该返回一个id=001的信息,但是由于一些SQL的特殊语句的注入导致显示user表内的所有信息。
为什么会这样呢?
这是因为,1=1永远是true,所有整个where语句永远是ture,所以where条件相当于没有加where条件,那么查询的结果相当于整张表的内容
2.字符串注入
注入#,#在SQL的语法是#后面所有的字符串都会被当成注释来处理
and后面的内容全部被注释掉,即使输错密码或者不输入密码都