我想知道是否有办法通过.htaccess禁止在CentOS中存档文件类型(例如:zip,rar等)。我目前正在使用一个不安全的上传脚本,作为临时修复,我想阻止人们上传包含文件集合的任何类型的文件。
或者甚至更好我只想通过.htaccess上传特定文件(jpg等)。这样,它仅限于帐户,而不是整个服务器。
答案 0 :(得分:1)
您应该在上传过程中检查文件的文件扩展名,并丢弃任何不需要的文件。
此外,您可以使用finfo_file()方法检查文件的类型。
修改强>
此外,如果您需要更高的安全性,可以致电imagecreatefromgif()或imagecreatefromjpeg()或imagecreatefrompng(),这会尝试从上传的文件中创建图片资源。这将使您免于Procyon82提到的问题。
的第4条评论的示例if (!$img = @imagecreatefromgif($uploadedfilename)) {
trigger_error('Not a GIF image!',E_USER_WARNING);
// do necessary stuff
}
答案 1 :(得分:1)
您应该检查要上传的文件。
$upld = $_FILES['userfile']['tmp_name'];
$mime = finfo_file(finfo_open(FILEINFO_MIME_TYPE),$upld);
从FILEINFO检查mime类型
if($mime=='image/gif'||$mime=='image/png'||$mime=='image/jpeg'){
$info = getimagesize($upld);
$tmp = explode('/',$info['mime']);
检查有效图像。从GD开放
$im = call_user_func_array('imagecreatefrom'.$tmp[1],$upld);
if($im){
# Its valid image, no error
}else{
# Its not valid or damaged images
}
# Its not image (zip, mp3, txt & etc.)
}
答案 2 :(得分:0)
除非文件名在URI或查询字符串本身中,否则htaccess不会对您有所帮助。实际上,您不应该尝试为应用程序问题找到传输解决方案。您需要在上传脚本中修复此问题。
htaccess文件对上传文件没有任何作用。