正如您在此处看到的: https ://github.com/visionmedia/express/blob/master/examples/multipart/index.js Express 默认支持文件上传,并将每个上传的文件存储在临时文件夹中以备后用。
我的问题是:它安全吗?
正如我所看到的,攻击者可以用垃圾文件填充所有临时文件夹,而对其没有任何控制。我应该检查每个 POST 请求并删除任何未使用的文件吗?
正如您在此处看到的: https ://github.com/visionmedia/express/blob/master/examples/multipart/index.js Express 默认支持文件上传,并将每个上传的文件存储在临时文件夹中以备后用。
我的问题是:它安全吗?
正如我所看到的,攻击者可以用垃圾文件填充所有临时文件夹,而对其没有任何控制。我应该检查每个 POST 请求并删除任何未使用的文件吗?
让我为您的问题提出两种解决方案。
确保您在 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
}