1.SQL注入简介

是一种用来和数据库交互的文本语言,就是利用某些数据库的外部接口将用户数据插入到实际的数据库操作语言当中,从而达到入侵数据库乃至操作系统的目的。

由于成粗对用户输入的数据没有进行严格的过滤,导致非法数据库查询语句的执行

下面就是通过or 逻辑运算和 / / 、 ##MySQL特性达到SQL的注入效果(就是混淆SQL达到获取信息和修改信息)
image.png

image.png

2.开发中应对注入的措施

2.1 PrepareStatement+Bind-Variable

在MySQL上使用 绑定变量 最大好处就是为了避免SQL注入

在PHP中:

  1. $stmt=$dbh->prepare("select * from dbname where username=? and password=?");
  2. $stmt->execute(array($username,$password));

2.2 使用应用程序提供的转换函数

很多应用程序接口提供了特殊字符进行转换的函数,恰当地使用这些函数,可以防止应用程序用户输入使应用程序生成不期望的预期(就是将不想要的特殊字符直接隔离)

2.3 自己定义函数进行校验

对用户提交或者可能改变的数据变的数据进行简单的分类。