SQL注入漏洞防御措施有哪几种
SQL注入漏洞防御措施有:
1.对输入进行严格的转义和过滤,例如:
//转义示例
functionescape($link,$data){
if(is_string($data)){
returnmysqli_realescape_string($link,$data);
}
if(is_array($data)){
foreach($dataas$key=>$val){
$data[$key]=esCape($link,$val);
}
}
return$data;
}
过滤举例:(黑名单)
str_replace("%","",$_ POST['username']),把post里面的数据里面含有%的替换成空
2.使用PDO的prepare进行预处理,例如:
$username=$_GET['username
'];
$password=$_GET['password'];
try{
$pdo=newPDO('mysql:host=localhost;dbname='ant','
root','root');
$sq1="select*fromadminwhereusername=?andpassowrd=?";
$stmt=$pdo->prepare($sq1);//先不传参数,先预处理
//
var_dump($stmt);
$stmt->execute(array($username,$password));
//这个时候在把参数传进去,以索引数组的方式传进去,而不是拼接,就成功避免了注入
}catch(PDOException$e){
echo$e->getMessage();
}
?>
本文来源:https://www.yuntue.com/post/61535.html | 云服务器网,转载请注明出处!