对于用户上传的图片,必须要进行判断和处理,防止含有恶意代码的图片上传到服务器,造成安全隐患。
l 处理原理:对图片类型进行简单的检测,并以原图进行重新生成(重新生成会打乱其中的恶意代码)
l 处理方法(用此方法替换move_uploaded_file):
<?php
/*
* 进行简单图片判断并上传(jpg,gif,png)
*@param $file $_FILES['']获取的值 ; $path 图片生成的物理路径(包含图片名称)
*return 上传成功 true ; 图片类型异常 -1 ;上传失败 false;
*/
function image_save($file,$path){
if ($file["type"] == "image/gif") {
@$im = imagecreatefromgif($file['tmp_name']);
if($im){
$sign = imagegif($im,$path);
}else{
return -1;
}
} elseif ($file["type"] == "image/png" || $file["type"] == "image/x-png") {
@$im = imagecreatefrompng($file['tmp_name']);
if($im){
$sign = imagepng($im,$path);
}else{
return -1;
}
} else {
@$im = imagecreatefromjpeg($file['tmp_name']);
if($im){
$sign = imagejpeg($im,$path,100);
}else{
return -1;
}
}
return $sign;
}