我网站的一部分允许用户上传个人资料照片。我担心人们上传恶意代码。我打算将文件类型限制为.jpg / .png / .gif / .jpeg
我担心这还不够。我将在服务器上调整大小的图像。调整照片大小的过程是否足以确保图像实际上是图像而非恶意文件?
我将使用以下内容调整照片大小。我不会将原件存储在服务器上,文件名也会被更改。
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagejpeg($thumb, $fullpath, 90);
答案 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,......