通过图片上传的恶意代码

时间:2011-05-31 09:37:59

标签: php validation image-processing

我网站的一部分允许用户上传个人资料照片。我担心人们上传恶意代码。我打算将文件类型限制为.jpg / .png / .gif / .jpeg

我担心这还不够。我将在服务器上调整大小的图像。调整照片大小的过程是否足以确保图像实际上是图像而非恶意文件?

我将使用以下内容调整照片大小。我不会将原件存储在服务器上,文件名也会被更改。

imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

    imagejpeg($thumb, $fullpath, 90);

3 个答案:

答案 0 :(得分:9)

这样做可以确保您处理图像:

if (getimagesize($sourcePath) === false)
{
   die("Not an image !");
}

为了更安全,您应该在upload文件夹中禁用PHP执行。 在.htaccess中:

php_value engine off

答案 1 :(得分:1)

好问题。我找到了一个链接,在这里讨论它:

http://www.phpclasses.org/blog/post/67-PHP-security-exploit-with-GIF-images.html

从个人经验来看,我大多只允许在密码屏蔽后面上传图像,所以我'知道'我的用户,但我几乎总是做一个调整大小 - 我的直觉是这就足够了,因为它会摧毁原来的将文件替换为您自己的重采样版本。

答案 2 :(得分:-1)

这不是问题,因为我看不出它怎么会发生。 但是,我不知道你的函数是什么(你没有发布源代码)。

只要我知道,就不可能注入PHP。您可以注入SQL,Javascript,HTML,......

相关问题