PHP - 使用GD库调整图像大小足以阻止/破坏图像中嵌入的代码吗?

时间:2016-06-04 17:16:06

标签: php gd

我无法找到我之前读过的链接,关于人们在图像中隐藏代码,但前提是可执行代码可以存储在图像中,然后在显示图像时运行代码在网站上。

这与:

相同
<img src="www.somelink.com/image.php?q=12345" />

很明显,图像来自PHP文件,而(可能)邪恶的代码隐藏在图像数据本身中。

总之!

我正在阅读的文章提到为图像添加最轻微的过滤器(即不易察觉的模糊),以基本上破坏代码,并防止其执行。

使用PHP的GD库,只需调整图像大小,是否可以达到同样的效果?类似的东西:

$src = imagecreatefromgif($fileTempLoc);

$resized_file1 = 'new_image_name.png';
$tmp1 = imagecreatetruecolor(a, b);
imagecopyresampled($tmp1, $src, 0, 0, e, f, a, b, c, d);
imagesavealpha($tmp1, true);
imagepng($tmp1, $resized_file1);

unlink($tmp1);
unlink($fileTempLoc);

或许有一种不同的方法在业界更常用和被接受?

这是什么&#34;嵌入式代码&#34;攻击通常被称为?因此,我可能会进一步研究阻止/阻止类似的攻击。<​​/ p>

非常感谢。

1 个答案:

答案 0 :(得分:-1)

  

我一直在写评论,而不是在我的答案中收集到一堆评论:

如何阻止脚本和恶意代码保存到您上传的图片(非常简短的摘要)

你需要做的是在PHP代码中将[上传的]图像保存为几种不同的类型,例如将图像保存为JPEG,然后加载该JPEG图像资源并将其重新保存为PNG资源文件,然后加载并重新保存PNG作为(最终)JPEG。

重复这个循环(虽然只是JPEG - &gt; PNG - &gt; JPEG 可能足够)我没有任何伤害但会增加处理服务器负载。

添加另一种可靠的图像格式也会提高安全性(尽管我还没有找到支持良好的第三种真彩色格式)以及doig操作,例如只存储图像输出作为新文件,而不是图像

调用什么不好的东西以及他们可以做什么

您正在寻找的参考代码是隐藏在元数据中的脚本攻击,最常见的是JPEG文件,但在其他文件类型中存在其他类型的攻击,例如PNG。

一些参考读物: