Home >Backend Development >PHP Tutorial >如何判断上传文件是否图片或是否安全

如何判断上传文件是否图片或是否安全

WBOY
WBOYOriginal
2016-06-13 12:04:131633browse

怎么判断上传文件是否图片或是否安全
怎么判断上传文件是否图片或是否安全
------解决方案--------------------
一般是通过文件名的原始后缀来进行文件上传时候的判别,然后保存后也是对应的类型,至于安全的话只要不是可执行文件基本都算安全,不知道你想问的是啥安全。
------解决方案--------------------
$_FILES["file"]["type"]   -- 可以判断上传文件的类型。

至于安全,看你的标准是什么了。
------解决方案--------------------
不可相信任何传入的东西,否则你就要吞食轻信的苦果了
你看看我这张图片怎么样?

$im = imagecreate(1,1);<br />$color = imagecolorallocate($im, 255, 0, 0);<br />imagegif($im, '1.gif');<br />$s =<<< TXT<br /><?php<br />phpinfo();<br />?><br />TXT;<br />file_put_contents('1.gif', $s, FILE_APPEND);<br />print_r(getimagesize('1.gif'));<br />echo '<img  src=1.gif    style="max-width:90%"如何判断上传文件是否图片或是否安全" >';<br />include '1.gif';

------解决方案--------------------
使用mime_content_type 檢查一下類型
http://php.net/manual/zh/function.mime-content-type.php

我一般會用imagemagick轉一次為圖片的。
------解决方案--------------------

引用:
不可相信任何传入的东西,否则你就要吞食轻信的苦果了
你看看我这张图片怎么样?
$im = imagecreate(1,1);<br />$color = imagecolorallocate($im, 255, 0, 0);<br />imagegif($im, '1.gif');<br />$s =<<< TXT<br /><?php<br />phpinfo();<br />?><br />TXT;<br />file_put_contents('1.gif', $s, FILE_APPEND);<br />print_r(getimagesize('1.gif'));<br />echo '<img  src=1.gif    style="max-width:90%"如何判断上传文件是否图片或是否安全" >';<br />include '1.gif';


我测试了你的代码,phpinfo()执行了,但是谁会去include一张图片呢?
这样的图片永远不会被执行吧?
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn