【问题标题】:Detect Content Embedded in Images检测图像中嵌入的内容
【发布时间】:2014-02-26 03:35:01
【问题描述】:

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

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

有人知道有效的方法吗?

【问题讨论】:

  • 您提到的方法可以说是最安全的 - 它还消除了可能附加到上传图像(通常用户不知道)的任何元数据,可能是隐私敏感的数据
  • 我不知道在 JavaScript 中执行此操作的任何好方法(除了您指定的方法)。遗憾的是,canvas 方法会很慢,比在检测到错误数据时阻塞它要慢。

标签: javascript node.js security file-upload


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    相关资源
    最近更新 更多