Php 检查图像是否为实际图像的正确方法

Php 检查图像是否为实际图像的正确方法,php,Php,我想知道什么是检查用户提供的图像是否为实际图像的正确方法 我看到了以下两个例子: $x=pathinfo('upload.png',pathinfo_扩展名) 结果:png $x = new finfo(FILEINFO_MIME_TYPE); $x->file('upload.png'); 结果:image/png后者可以更改扩展名,也可以伪造finfo,但难度更大。有关其他检查方法,请参阅。同样,将有害的可执行代码包装到一个标识为GIF的文件中并不难。但话说回来,这里;这是我使用的图

我想知道什么是检查用户提供的图像是否为实际图像的正确方法

我看到了以下两个例子:

$x=pathinfo('upload.png',pathinfo_扩展名)

结果:
png

$x = new finfo(FILEINFO_MIME_TYPE);
$x->file('upload.png');

结果:
image/png

后者可以更改扩展名,也可以伪造finfo,但难度更大。有关其他检查方法,请参阅。同样,将有害的可执行代码包装到一个标识为GIF的文件中并不难。但话说回来,这里;这是我使用的图像检查:

$x = new finfo(FILEINFO_MIME_TYPE);
$x->file('upload.png');
if (!$img = @imagecreatefromgif($uploadedfilename)) {
  trigger_error('Not a GIF image!',E_USER_WARNING);
  // do necessary stuff
}

祝你好运

尝试调整其大小或使用查看此
getimagesize
。。。。可能会有帮助您可以使用二进制
文件
(仅在*nix上可用),但使用
finfo
也是一种非常好的方法(可能是最好的方法)。