上传假图像安全问题/预防

时间:2016-03-21 21:56:24

标签: php image security upload getimagesize

我正在构建一个PHP Web应用程序,它包括图像上传。我读过有关阻止上传假图片的消息。但是什么是假图像以及它们如何用于攻击服务器?

使用PHP函数getimagesize()并检查文件扩展名以消除所有可能的图像攻击是否足够?

2 个答案:

答案 0 :(得分:1)

假图像的一个例子是有人上传PHP文件而不是图像,然后欺骗服务器执行它。防止此类攻击有多种选择,包括阻止用户选择用于在服务器上存储图像的文件扩展名,并将上传的图像存储在文档根目录之外(使用file_get_contents在需要时读取它们)

答案 1 :(得分:0)

有关@Chris解释的假图像的详细解释。

虚假图像的目的是将可执行代码放在您的服务器上,因此将用户上传的图像存储在文档根目录之外是个好主意。另一个好主意是检查文件是否真的是图像。

检查文件是否为有效图像的最快方法可能是:

function isValidImage($file) {
  return ( false === exif_imagetype($file) ) ? FALSE : TRUE;
}

查看http://php.net/manual/en/function.exif-imagetype.php以获取更多信息和示例。