NodeJS Express文件上传错误

时间:2018-10-22 19:47:12

标签: node.js file express upload

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

POST页面http://cryptsy.tv/speedtest

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

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

1 个答案:

答案 0 :(得分:0)

使用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();
},