javascript - 检测图像中嵌入的内容

标签 javascript node.js security file-upload

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

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

有人知道执行此操作的有效方法吗?

最佳答案

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

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

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

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

我想到了这3个,希望其中一个能满足你的需求。

关于javascript - 检测图像中嵌入的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21513979/

相关文章:

javascript - Riot API 调用 Node.js

json - node.js 中的只读 JSON 对象

security - OpenShift 是否通过在主机级别隔离容器来支持真正的 Multi-Tenancy ?

php - 如何在不使用 SSL 的情况下保护 POST 方法?

javascript - 需要将一个对象动画化到顶部并使其返回

javascript - 这个 mongoskin 聚合命令有什么问题?

javascript - 如何使用react-native解决 "Unable to resolve module..."错误?

javascript - 有没有办法在 JS 中比较两种颜色,比如 'If Color A is darker than #202020'

javascript - 快速检查 Javascript

javascript - 有没有一种安全的方法可以在网页中运行 eval 并避免它访问页面其余部分的内容?