我有一个用于将图像上传到NodeJS + Multer中编写的后端的表单。后端检查文件大小和文件类型,因此不允许用户上传任何其他文件,然后是png / jpg / gif。但是,没有什么能阻止用户将.zip
(或任何其他类型)文件重命名为.png
并上传到我的服务器。这会将文件存储在图像位置,稍后可能会在请求时返回到浏览器。
所以现在我的问题是,这是否应该引起我的注意?是否可以用来对我的服务器或稍后将在浏览器中检索此假图像的用户造成任何损害?如果是这样我怎么能阻止这个?我不得不以某种方式检查图像是否是有效的图像文件?我是否必须使用像Lwip这样的东西?
答案 0 :(得分:1)
您可以查看文件的 mimetype
。
//File filter to send only videos
const fileFilter = (req, file, cb) => {
// reject a file
console.log(file.mimetype);
if (file.mimetype.match(/^video\/\w+/)){
cb(null,true);
} else {
console.log('File Extension not Allowed');
cb(null, false);
}
};
//Multer
const upload = multer({
storage: storage,
fileFilter: fileFilter
});