我正在玩图片上传到网站,我发现了这些减压炸弹攻击,当它被允许上传png
文件(以及其他一些文件)时就会发生。由于我要更改上传的图像,我想确保我不会成为此攻击的受害者。因此,当检查png
文件是否是炸弹时,我是否可以只读取文件的标题并确保宽度和高度不超过设定的限制,如4000x4000或其他什么?这是一种有效的方法吗?或者更好的方法是什么?
答案 0 :(得分:5)
您的“imagemagick”标签表示您正在询问如何使用ImageMagick进行操作。 ImageMagick的默认宽度和高度限制非常大:“convert -list resource”表示
资源限制:宽度:214.7MP高度:214.7MP区域:8.135GP
ImageMagick中的图像宽度和高度限制来自命令行“-limit”选项,我想这也可以通过各种ImageMagick API中的某个等效指令传达。 ImageMagick继承了libpng对iCCP块等的限制。
在IHDR块中伪造较小的宽度和高度值不会欺骗libpng或ImageMagick。他们只发出一个“额外压缩数据”警告并跳过IDAT数据的其余部分而不解压缩。