管理文件上传到nodejs的安全性

时间:2014-11-10 03:26:58

标签: node.js

我的客户端(ember.js)上有一个图像上传视图,它将调整大小的图像发送到nodejs rest api; 它工作得很好,但是某位专家很容易强制上传未调整大小的图像; 我想在客户端上保留调整大小的过程,因为这允许用户选择重量级的图像,这些图像在本地调整大小并且仅在它们轻量级之后上传;

如果其他人使用这样的东西,我对如何使其尽可能安全感兴趣;

2 个答案:

答案 0 :(得分:1)

根据经验,开发Web应用程序永远不会信任来自客户端的任何数据,总是尝试在服务器端进行检查!

  1. 使用身份验证,这可以确保用户只允许将数据上传到自己的帐户而不是摆弄其他文件。
  2. 在服务器和客户端之间添加一条特殊的消息,一个简单的例子就是

    我。首先发送一个后API请求(包含图像信息和目标压缩大小)到您的服务器,表明您的客户端正在开始压缩图片

    II。上传时,添加元数据以包含完整的压缩图像,如果服务器处于可接受的阈值范围内,请检查上传的图像,否则将其丢弃

  3. 您可以增强邮件传递的安全性,使其更加复杂!

    这将是我简单的安全性,其他人有更好的解决方案吗? :)

答案 1 :(得分:1)

方法here也适用于文件上传。您可以结合使用检查:

  1. 内容长度标题和/或(即req.headers ['content-length']> x)
  2. 读取服务器正在读取的流大小。 (即req.on('data'))
  3. 如果流数据超过特定大小,您可以相应地做出响应。查看Multer之类的文件上传内容,特别是限制部分。最佳方法可能是第二种选择。