温馨提示×

sql注入漏洞防御措施有哪些

小新
512
2021-01-16 13:07:55
栏目: 云计算

sql注入漏洞防御措施有哪些

sql注入漏洞防御措施有:

1.对输入进行严格的转义和过滤,例如:

//转义示例

function escape($link, $data){

if(is_ string($data)){

return mysqli_ real escape_ str ing($link , $data);

}

if(is_ array($data)){

foreach ($data as $key=>$val){

$data[$key ]=es C ape($link, $val);

}

}

return $data;

}

过滤举例:(黑名单)

str_replace("%","",$_ POST['username']),把post里面的数据里面含有%的替换成空

2.使用PDO的prepare进行预处理,例如:

$username=$_ GET['username

'];

$password=$_ GET['password'];

try{

    $pdo=new PDO('mysql:host=localhost;dbname='ant','

root','root');

    $sq1="select * from admin where username=? and passowrd=?";

    $stmt=$pdo->prepare($sq1);//先不传参数,先预处理

    

//

var_ dump($stmt);

    

$stmt->execute(array($username,$password));

    //这个时候在把参数传进去,以索引数组的方式传进去,而不是拼接,就成功防止了注入

}catch (PDOException $e){

    echo $e->getMessage();

}

 

?>


0