我有一个用 NodeJS+Multer 编写的用于将图像上传到后端的表单。后端检查文件大小和文件类型,因此不允许用户上传除 png/jpg/gif 之外的任何其他文件。但是,没有什么可以阻止用户将 .zip
(或任何其他类型)文件重命名为 .png
并上传到我的服务器。这会将文件存储在图像位置,稍后可能会在请求时返回到浏览器。
所以现在我的问题是这是否是我应该关心的事情?它是否可以用来对我的服务器或稍后在浏览器中检索此假图像的用户造成任何损害?如果是这样我该如何防止这种情况?我必须以某种方式检查图像是否是有效的图像文件?我必须使用 Lwip 之类的东西吗?
您可以检查文件的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
});
我是一名优秀的程序员,十分优秀!