【问题标题】:NodeJS Express File Upload BugNodeJS Express 文件上传错误
【发布时间】:2019-03-26 23:12:25
【问题描述】:

我正在上传一个只有 1MB 的 1MB 文件。似乎任何不处理文件上传的帖子页面都会导致服务器保存该文件的临时实例,该文件的存在时间未知。这是在任何发布请求中都可能遇到的问题。我该如何解决这个问题,以便没有人可以将其用作攻击媒介?

发布页面http://cryptsy.tv/speedtest

speedtest: function(req,res){
    res.end("Done");
}

https://github.com/justin7674/PeerJS-SwarmConnection/tree/master/Server

【问题讨论】:

标签: node.js file express upload


【解决方案1】:

当使用 express-fileupload 时,任何文件上传到任何帖子页面(无论帖子页面是否旨在处理文件上传)临时文件将在没有权限的情况下上传,并且创建的文件将保留在服务器目录中没有已知/提供的到期时间。这可以通过简单地将文件发送到任何可用的帖子页面来允许服务器被过度填充和内存最大化。我通过使用 POST 或 PUT 将其传递给每个页面来修复它。

,handlefiles: function(req,res,next){
    const files = req.files || {};
    function cleanupFiles () {
        res.removeListener('finish', cleanupFiles);
        res.removeListener('close', cleanupFiles);
        const files = req.files || {};
        for(var fn in files){
             fs.unlinkSync(files[fn].path);
        }
    }
    res.on('finish', cleanupFiles);
    res.on('close', cleanupFiles);
    next();
},

【讨论】:

  • 您是否考虑过仅在处理文件的路由上启用 express-fileupload。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-10
  • 2018-07-21
  • 2013-11-14
  • 2017-04-09
  • 2021-08-16
  • 1970-01-01
  • 2014-05-26
相关资源
最近更新 更多