图像清理库

Jon*_*ark 5 security png jpeg gif

我有一个网站,显示用户提交的图像.我担心上传一个可能在浏览器渲染引擎中利用0天漏洞的图像.此外,我想清除元数据的图像(如EXIF数据),并尝试以无损方式进一步压缩它们(PNG和JPEG有几个这样的命令行实用程序).

考虑到上述情况,我的问题如下:是否有一些C/C++库可以满足上述情况?即使完整的解析 - >清除 - >清理 - >压缩 - >写入管道 在任何单个库中都不可用,我至少可以实现 解析 - >清除 - >清理 - >编写管道(不压缩)一个支持JPEG/PNG/GIF的库?

Cel*_*ada 6

您的要求无法实现:如果您使用的某个图像读取库中存在0天漏洞,则在尝试解析和清理传入文件时,您的代码可能会被利用.一旦收到图像,通过"预启动",你只需要提前开发而不是更晚.

唯一有用的是在沙盒中解析和清理传入的图像,这样,至少,如果存在漏洞,它将被包含在沙箱中.沙箱可以是一个单独的进程,作为chroot环境中的非特权用户运行(或者对于非常偏执的VM),其界面仅包含字节流,清理后的图像输出.

清理本身可以像使用ImageMagick打开图像,将其解码为栅格,以及以标准格式(例如,PNG或JPEG)重新编码和发射它们一样简单.请注意,如果输入和输出都是有损格式(如JPEG),则此转换将是有损的.