我正在尝试将图片文件上传到我的服务器,看看有人帮助我的方式更安全吗? 这是我的代码:
if(isset($_POST['upload'])):
$imgtype = $_FILES['image_file']['tmp_name'];
$size = @getimagesize($imgtype);
switch($size[2]){
case IMAGETYPE_GIF : $src = imagecreatefromgif($imgtype); break;
case IMAGETYPE_JPEG : $src = imagecreatefromjpeg($imgtype); break;
case IMAGETYPE_PNG : $src = imagecreatefrompng($imgtype); break;
default : die("Unknown filetype");
}
$newname = sha1(date('n').$imgtype);
imagejpeg($src, 'img/'.$newname.'.jpg', 100);
imagedestroy($src);
if(!$size){
echo 'This not an valid image: '. $size[2];
}
endif;
答案 0 :(得分:1)
好吧,如果问题是某人只是“入侵”了它,可能会通过会话令牌查看CSRF保护。有一个不错的教程here。
您对getimagesize()
的来电应该可以阻止任何非图像文件通过,但我们需要知道的是您试图阻止的确切情况。