检测图像中嵌入的内容

时间:2014-02-02 17:47:33

标签: javascript node.js security file-upload

我想知道是否有任何可能的方法来检测是否有内容上传到图片中。例如,使用WinRAR,我可以将任何类型的文件嵌入到图像中,同时将图像格式保持为图像。像imgur这样的网站设法阻止了这一点。我想知道他们是怎么做到的。

我认为一种可能的方法是将图像数据上传到画布,以便它纯粹表示为像素数组,然后将画布的数据重新转换回图像。但是,这在服务器端相当耗时。

有人知道有效的方法吗?

1 个答案:

答案 0 :(得分:1)

正如您提到的node.js和服务器端,您可以执行以下操作:

1)将imagemagic与节点绑定node-imagemagick一起使用 - 它使用cli imagemagic,因此速度很快。库被广泛使用,因此您将找到大量示例如何从文件中删除Exif和不必要的数据。在最坏的情况下,您可以重新压缩文件。

2)如果您只使用jpeg图像,则可以使用node-jpegoptim并优化每个上传的文件。它也使用cli所以会很快

3)最后,您可以使用node-smushit并使用Yahoo服务器完成这项工作,但是您需要检查their terms of service是否适合您的内容。

我想到的是3个,我希望其中一个能满足您的需求。