Node.js:如何防止恶意映像文件上传?即,如何在Node中实现图像清理程序?

时间:2018-12-07 00:35:30

标签: node.js security image-uploading hapijs sanitization

我正在使用hapi.js创建一个Web应用程序,该应用程序允许用户上传图像。我正在客户端和服务器中验证上传的图像,以仅允许.jpg / .jpeg.png.gif文件。但是,我是Web应用程序安全性的新手,在图像清理方面,我有些失落。

我正在尝试遵循这些OWASP Upload Verification准则:

  • 使用图像重写库来验证图像是否有效以及 删除多余的内容。
  • 将存储的图像扩展名设置为有效的图像扩展名 基于从图像处理中检测到的图像内容类型 (例如,不要只相信上传的标头)。

这些是我的问题:

  • 我可以简单地通过sharp之类的包运行每个上传的图像,重写过程将删除任何嵌入式代码吗? sharp的作者做了一个简短的comment on security,但我仍然不了解可能存在的安全问题或如何解决这些问题。
  • 我读过评论说reading bytes into a Buffer cannot execute malicious code。如果我将文件作为Buffer对象输入sharp中,是否可以删除任何恶意代码并消除可能的安全性问题?
  • 我是否需要通过防病毒扫描(例如clamscannode-virustotalWeb Exploit Detector)运行上传的图像?如果是,我是否需要在通过图像处理器运行图像之前或之后通过扫描运行图像?还是应该在不进行图像处理的情况下进行扫描?

我真的很想更好地理解Web应用程序的安全性(特别是对于Node应用程序),因此,您可以就这些问题给我任何指导(或者我可以去学习更多的地方),将不胜感激。

谢谢!

0 个答案:

没有答案