Ошибка загрузки файла в NodeJS Express - PullRequest
0 голосов
/ 22 октября 2018

Я загружаю один мегабайтный файл размером всего 1 МБ.Похоже, что любая страница публикации, которая не обрабатывает загрузку файлов, заставит сервер сохранить временный экземпляр этого файла с неизвестным временем существования.Это проблема, которая может возникнуть в любом почтовом запросе.Как я могу исправить это, чтобы никто не мог использовать это как вектор атаки?

Страница POST http://cryptsy.tv/speedtest

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

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

1 Ответ

0 голосов
/ 23 октября 2018

При использовании экспресс-загрузки файла любая загрузка файла на любую страницу публикации (независимо от того, предназначена ли страница публикации для обработки загрузки файлов), временный файл будет загружен без разрешений, а созданный файл останется в каталоге сервера ссрок годности неизвестен / предоставлен.Это может привести к переполнению сервера и увеличению объема памяти, просто отправив файл на любую доступную страницу поста.Я исправил это, передав это каждой странице, используя 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();
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...