我们必须为 node.js 项目实现一个图像上传器。作为我们使用 express.js 的框架,我们按照此处所述进行操作:http: //howtonode.org/really-simple-file-uploads
但我们不确定如何保护此图像上传器。到目前为止,我们所做的是:
- 检查文件大小
- 检查扩展名和标题
- 重命名文件
- 文件只能通过特殊路径访问,并且不在根文件夹中
这够了吗?我们对以下行感觉不太舒服:
// CHECKING FOR FILESIZE, EXTENSION, HEADERS
fs.readFile(req.files.displayImage.path, function (err, data) {
...
...
...
// RENAMING FILE
// SAVE FILE
...
...
...
}
以这种方式读取图像是否保存?我们担心,req.files.displayImage.path 中可能存在恶意代码。我们是否需要添加更多检查或我们的检查是否足够?如果我们使用所描述的代码,我们会为攻击者提供哪些攻击向量?
感谢您的建议 Tschoartschi