2

我们必须为 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

4

1 回答 1

0

如果您担心在您的评论中发布的客户端打开恶意图像。尝试在沙盒 iframe 中打开第三方脚本和不受信任的文件,这将保护您的用户。

于 2018-08-15T12:21:53.723 回答