imagecreatefrompng是否可以安全地获取外部图像?

时间:2014-10-29 18:54:13

标签: php

我想知道函数imagecreatefrompng(及其亲属)是否安全?

如果我在哪里使用此功能获取外部图像文件,并且图像包含恶意代码,我的服务器上是否会显示此代码?

示例:

 <?php
if($_GET['pass'] != 'IamAW') die();

// Accepted Filetypes
$Accepted = array('png');

$File = $_GET['file'];

$Filetype = end(explode('.', $File));

if(!in_array($Filetype, $Accepted)) {
die('Fil-type ikke valid');
}

$im = imagecreatefrompng($File);


header('Content-Type: image/'. $Filetype);
imagepng($im);

imagedestroy($im);
?>

1 个答案:

答案 0 :(得分:0)

它可行,但为什么还要打扰?

您正在吮吸远程PNG,在内存中解压缩为原始格式,然后重新压缩为PNG,而无需对图像执行任何操作。如果它最终成为一个&#34;大&#34; PNG(例如1280x1024 32位PNG将需要5兆字节的RAM。

你做得更好:

echo file_get_contents($remote_image_url);

节省您的解压缩/重新压缩时间。