我正在使用multer在我的应用程序中上传文件。喜欢:https://github.com/expressjs/multer/blob/master/README.md
是否可以通过path traversal vulnerability possible?如果是,那么告诉我们如何才能阻止这一切?
目前,我正在使用下面的代码。我只想确认一下,是否存在文件易受攻击的风险?请发表意见。
var storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, 'uploads/');
},
filename: function (req, file, cb) {
console.log(file);
var ext = file.originalname.split('.').pop();
cb(null, Date.now() + '_' + file.originalname);
}});
const fileFilter = (req, file, cb) => {
// Accept or reject the file based on if MIME type is found in accepted list
if (acceptedMimeTypes.indexOf(file.mimetype) < 0) {
return cb("エラー:このタイプのファイルはアップロードできません。ZIP形式とLZH形式のファイルのみアップロードしてください。", false) // Error: You can't upload files of this type. Please upload images and zips only.
}
else {
return cb(null, true);
}
}
var upload = multer({ storage: storage, fileFilter: fileFilter, limits: { fileSize: 1024 * 1024 * 1 } }).single('file');如果有任何风险,请向我建议一个更好的方法与expressjs multer。
发布于 2019-12-26 20:30:07
您可以使用以下代码修改fileName,这样就没有人可以威胁您了:
const storage = multer.diskStorage({
destination: './public',
filename(req, file, cb) {
cb(null, 'Your File Name');
},
});您还可以像这样使用randomatic和time将其动态化:
const storage = multer.diskStorage({
destination: './public',
filename(req, file, cb) {
cb(null, `${new Date().getTime()}`);
},
});https://stackoverflow.com/questions/59488424
复制相似问题