Загружать изображения на сервер в NodeJS+Multer?
У меня есть форма, которая используется для загрузки изображений в бэкэнд, написанный на NodeJS+Multer. Backend проверяет размер файла и тип файла, поэтому пользователю не разрешается загружать любые другие файлы, кроме png/jpg/gif. Однако ничто не мешает пользователю переименовать .zip
(или любой другой тип) файл в .png
и загрузить на мой сервер. Это сохранит файл в папке изображений и позже может быть возвращено обратно в браузер по запросу.
Итак, теперь мой вопрос: это то, что меня должно беспокоить? Может ли он быть использован для нанесения какого-либо ущерба моему серверу или пользователям, которые позже будут получать это поддельное изображение в своих браузерах? Если так, как я могу предотвратить это? Я должен был бы проверить, является ли изображение допустимым файлом изображения как-нибудь? Должен ли я использовать что-то вроде Lwip?
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
});