web安全 之 sql注入防御


1、mysql预编译(推荐)
$mysqli=new MySQLi("localhost","root","","mraz");
if($mysqli->connect_error){
    die($mysqli->connect_error);
}
//创建预编译对象
$sql="select id,fdName,fdAge from emp where id=? and fdAge=?";
$mysqli_stmt=$mysqli->prepare($sql);


$id=1;
$fdAge=1;
//绑定参数,严格按照顺序
//ii是两个整型类型,si是一个字符串类型,一个整型类型
$mysqli_stmt->bind_param("ii",$id,$fdAge);
//绑定结果集
$mysqli_stmt->bind_result($id,$fdName,$fdAge);
//执行
$mysqli_stmt->execute();
//取出绑定的值
while($mysqli_stmt->fetch()){
    echo "<br/>$id--$fdName--$fdAge";
}


2、过滤输入

addslashes函数,将单引号('),双引号("),反斜杠(\)等预定义字符加上反斜杠(\)转义

例如

$id=addslashes($_GET[‘id’]);


你可能感兴趣的:(web安全 之 sql注入防御)