<?php
if($_POST){
$imagentipo=$_FILES['imagen']['type'];
$check=array("image/gif","image/jpeg","image/png");
if(in_array($imagentipo,$check)){
$imagen=$_FILES['imagen']['name'];
$temp=$_FILES['imagen']['tmp_name'];
move_uploaded_file($temp,$imagen);
}
}
?>
<html>
<body>
<form action=test.php method=post enctype=multipart/form-data>
<img src="<?php echo $imagen ?>" width=50 height=50><br>
<input type=file name=imagen accept="image/*"><br>
<input type=submit name=lol>
</form>
</body>
</html>此代码仅允许上载.jpg .gif .png文件;但是,可以通过篡改数据绕过此操作。有什么方法可以防止这种情况发生吗?
发布于 2013-07-05 09:49:27
将上传的文件移到web根目录之外,并使用图像操作库中的函数来检查上传的文件是否确实是图像。像Imagick一样:
try{
$image = new Imagick($filePath);
}catch(Exception $e){
// fail
}如果你没有Imagick:
if(getimagesize($filePath) === false){
// fail...
}https://stackoverflow.com/questions/17479938
复制相似问题