正如你在这里看到的: https://github.com/visionmedia/express/blob/master/examples/multipart/index.js 默认情况下快速支持文件上传,并将每个上传的文件存储在临时文件夹中供以后使用。
我的问题是:安全吗?
正如我所看到的,攻击者可以使用垃圾文件填充所有临时文件夹,而无需任何控制。 我应该检查每个POST请求并删除任何未使用的文件吗?
答案 0 :(得分:1)
让我为你的问题提出两个解决方案。
确保您在24小时内仅接受来自同一IP地址的最大x次上传次数。将此溶液与溶液1混合以获得最大效果。实现这一目标的一种方法是,为每个IP地址设置一个具有上传计数的全局对象,然后每24小时清除一次。
var uploads = {}
setInterval(function(){
uploads = {}
}, 24*60*60*1000); //Run every 24 hours
var onUpload = function(request, file){
if(uploads[req.ip] > maxUploadsAllowedPrUser)
fs.unlink(file) //Delete the file
else
uploads[req.ip]++ //Keep the file, and increase count
}